#angularjs #json #node.js #heroku
#angularjs #json #node.js #героку
Вопрос:
Я просмотрел похожие вопросы stackoverflow, и ни один из них, похоже, не работает для меня. Я пытался развернуть свое приложение NodeJS в Heroku, но продолжаю натыкаться на это сообщение от heroku о беседке. Я пытался вручную написать bower в своих зависимостях, но это не сработало, я также попытался переместить свои зависимости из bower.json в package.json, но это также не сработало. Большое тебе спасибо, парень, я поместил свои журналы heroku, файлы package.json и bower.json ниже.
angular-seed@0.0.0 postinstall /tmp/build_370f51a52877a36d300c739f31855511 удаленный:> установка беседки удаленный:
удаленный: sh: 1: беседка: не найдена
Ниже я перечислил свои файлы package.json и bower.json.
Package.json
"name": "angular-seed",
"private": true,
"version": "0.0.0",
"description": "A starter project for AngularJS",
"repository": "https://github.com/angular/angular-seed",
"license": "MIT",
"devDependencies": {
"bower": "^1.7.7",
"http-server": "^0.9.0",
"jasmine-core": "^2.4.1",
"karma": "^0.13.22",
"karma-chrome-launcher": "^0.2.3",
"karma-firefox-launcher": "^0.1.7",
"karma-jasmine": "^0.3.8",
"karma-junit-reporter": "^0.4.1",
"protractor": "^3.2.2"
},
"scripts": {
"postinstall": "bower install",
"prestart": "npm install",
"start": "http-server -a localhost -p 8000 -c-1 ./app",
"pretest": "npm install",
"test": "karma start karma.conf.js",
"test-single-run": "karma start karma.conf.js --single-run",
"preupdate-webdriver": "npm install",
"update-webdriver": "webdriver-manager update",
"preprotractor": "npm run update-webdriver",
"protractor": "protractor e2e-tests/protractor.conf.js",
},
"dependencies":{
"bower": "^1.7.9"
}
}
Bower.json
{
"name": "angular-seed",
"description": "A starter project for AngularJS",
"version": "0.0.0",
"homepage": "https://github.com/angular/angular-seed",
"license": "MIT",
"private": true,
"dependencies": {
"angular": "~1.5.0",
"angular-route": "~1.5.0",
"angular-loader": "~1.5.0",
"angular-mocks": "~1.5.0",
"html5-boilerplate": "^5.3.0"
}
}
Heroku
remote: -----> Creating runtime environment
remote: NPM_CONFIG_LOGLEVEL=error
remote: NPM_CONFIG_PRODUCTION=true
remote: NODE_ENV=production
remote: NODE_MODULES_CACHE=true
remote: -----> Installing binaries
remote: engines.node (package.json): unspecified
remote: engines.npm (package.json): unspecified (use default)
remote: Resolving node version (latest stable) via semver.io...
remote: Downloading and installing node 5.11.1...
remote: Using default npm version: 3.8.6
remote: -----> Restoring cache
remote: Skipping cache restore (new runtime signature)
remote: -----> Building dependencies
remote: Installing node modules (package.json)
remote: > angular-seed@0.0.0 postinstall /tmp/build_73e84e8327fb8bcb9b0e1cdc47631bca
remote: > bower install
remote: sh: 1: bower: not found
remote: npm ERR! Linux 3.13.0-95-generic
remote: npm ERR! argv
/tmp/build_73e84e8327fb8bcb9b0e1cdc47631bca/.heroku/node/bin/node" "/tmp/build_73e84e8327fb8bcb9b0e1cdc47631bca/.heroku/node/bin/npm" "install" "--unsafe-perm" "--userconfig" "/tmp/build_73e84e8327fb8bcb9b0e1cdc47631bca/.npmrc"
remote: npm ERR! node v5.11.1
remote: npm ERR! npm v3.8.6
remote: npm ERR! file sh
remote: npm ERR! code ELIFECYCLE
remote: npm ERR! errno ENOENT
remote: npm ERR! syscall spawn
remote: npm ERR! angular-seed@0.0.0 postinstall: `bower install`
remote: npm ERR! spawn ENOENT
remote: npm ERR!
remote: npm ERR! Failed at the angular-seed@0.0.0 postinstall script
bower install'.
remote: npm ERR! Make sure you have the latest version of node.js and npm installed.
remote: npm ERR! If you do, this is most likely a problem with the angular-seed package,
remote: npm ERR! not with npm itself.
remote: npm ERR! Tell the author that this fails on your system:
remote: npm ERR! bower install
remote: npm ERR! You can get information on how to open an issue for this project with
remote: npm ERR! npm bugs angular-seed
remote: npm ERR! Or if that isn't available, you can get their info via:
remote: npm ERR! npm owner ls angular-seed
remote: npm ERR! There is likely additional logging output above.
remote: npm ERR! Please include the following file with any support
remote: npm ERR! /tmp/build_73e84e8327fb8bcb9b0e1cdc47631bca/npm-debug.log
remote: -----> Build failed
Ответ №1:
Попробуйте это вместо последующей установки:
"postinstall": "./node_modules/bower/bin/bower install"
Это связано с тем, что bower устанавливается локально по указанному пути, а не глобально.
Комментарии:
1. Нада, спасибо тебе за твой ответ. Я записал это вручную в свой package.json, как вы его ввели, и все равно получил это сообщение в моем терминале: sh: 1: беседка: не найдена ОШИБКА npm! argv «/tmp/build_9380f098e618099312acd138be466b7e/.heroku/node/bin/узел» «/tmp/build_9380f098e618099312acd138be466b7e/.heroku/node/bin/npm» «установить» «—небезопасный-пермь» «—userconfig» «/tmp/ build_9380f098e618099312acd138be466b7e/.npmrc» ОШИБКА нпм! angular-seed@0.0.0 последующая установка:
bower install
2. вы запускаете это после того, как установили bower using
npm install bower
? как выглядит ваша папка ./node_modules/bower/bin?3. Нет, я не дал мне ни минуты, чтобы попробовать это прямо сейчас, выполнив следующие шаги: 1. Вручную напишите в package.json «postinstall»: «./node_modules/bower/bin/ bower install» 2. в терминале введите: npm install bower 3. git push heroku master
4. Отлично, поэтому я попробовал это с помощью шагов, и папка bower (расположенная в моей папке node_modules) действительно существует. В нем есть папка bin, папка lib, файл package.json внутри
5. под этим я подразумевал папку node_modules развернутого сервера. so:
npm install bower --save
которая добавляет bower в качестве зависимости к package.json. это должно сработать. если все остальное не сработает, попробуйте это (и я обновлю свой ответ, если это сработает).