I am trying to spin up a node.js server using the git aws.push method
http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_nodejs.sdlc.html
Similar to this solution, I'm trying to run 'bower install', though my solution is a bit different:
https://developer.ibm.com/answers/questions/16594/how-to-install-packages-on-nodejs/
my implementation:
"scripts": { "postinstall": "bower install -F" },
this works fine locally - npm install also runs bower install with no problems. when i deploy to aws, npm runs fine - i know that my server starts up fine because i can see messages from it in the logs, but none of the bower components are in place when i try to bring up the client.
i'm using node v0.10.26, and i am sure that i don't have bower installed globally on my local machine. i've tried this both with and without including bower in the dependencies section of my package.json.
any ideas? and thanks in advance.
{
"name": "smf",
"version": "0.1.0",
"dependencies": {
"aws-sdk": "~2.0.0-rc.14",
"base64-js": "0.0.6",
"bookshelf": "~0.6.10",
"bower": "*",
"change-case": "~2.1.1",
"crypto-js": "~3.1.2-3",
"geojson": "~0.1.5",
"handlebars": "~2.0.0-alpha.2",
"js-base64": "~2.1.5",
"lodash": "~2.4.1",
"mathjs": "~0.21.0",
"minify": "~0.5.1",
"moment": "~2.6.0",
"newrelic": "~1.5.3",
"node-cryptojs-aes": "~0.4.0",
"node-highcharts": "0.0.2",
"node-uuid": "~1.4.1",
"passport": "~0.2.0",
"passport-http": "~0.2.2",
"passport-local": "~1.0.0",
"password-hash": "~1.2.2",
"pg": "~3.0.3",
"restify": "~2.7.0",
"should": "~3.3.1",
"socket.io": "~0.9.16",
"sqlite3": "~2.2.3",
"util": "~0.10.3",
"when": "~3.1.0"
},
"devDependencies": {
"grunt": "~0.4.2",
"grunt-contrib-jshint": "^0.10.0",
"grunt-mocha-test": "~0.9.0",
"mocha-phantomjs": "~3.3.1"
},
"scripts": {
"postinstall": "bower install -F"
},
"engines": {
"node": ">=0.6"
}
}
The entire log is too long, though I will paste it in multiple comments if you need. Below is the only section that mentions bower at all.
If I try to access the site, I can get access logs indicating that bower components are missing.
There doesn't appear to be any execution of bower install happening.
underscore.string@2.3.3 /tmp/deployment/application/node_modules/bower/node_modules/update-notifier/node_modules/configstore/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string esprima@1.0.4 /tmp/deployment/application/node_modules/bower/node_modules/update-notifier/node_modules/configstore/node_modules/js-yaml/node_modules/esprima object-assign@0.3.1 /tmp/deployment/application/node_modules/bower/node_modules/update-notifier/node_modules/configstore/node_modules/object-assign uuid@1.4.1 /tmp/deployment/application/node_modules/bower/node_modules/update-notifier/node_modules/configstore/node_modules/uuid latest-version@0.2.0 /tmp/deployment/application/node_modules/bower/node_modules/update-notifier/node_modules/latest-version package-json@0.2.0 /tmp/deployment/application/node_modules/bower/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json got@0.3.0 /tmp/deployment/application/node_modules/bower/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got object-assign@0.3.1 /tmp/deployment/application/node_modules/bower/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/object-assign registry-url@0.1.1 /tmp/deployment/application/node_modules/bower/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url npmconf@2.0.2 /tmp/deployment/application/node_modules/bower/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/npmconf config-chain@1.1.8 /tmp/deployment/application/node_modules/bower/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/npmconf/node_modules/config-chain proto-list@1.2.3 /tmp/deployment/application/node_modules/bower/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/npmconf/node_modules/config-chain/node_modules/proto-list ini@1.2.1 /tmp/deployment/application/node_modules/bower/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/npmconf/node_modules/ini inherits@2.0.1 /tmp/deployment/application/node_modules/bower/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/npmconf/node_modules/inherits mkdirp@0.3.5 /tmp/deployment/application/node_modules/bower/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/npmconf/node_modules/mkdirp once@1.3.0 /tmp/deployment/application/node_modules/bower/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/npmconf/node_modules/once uid-number@0.0.5 /tmp/deployment/application/node_modules/bower/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/npmconf/node_modules/uid-number semver-diff@0.1.0 /tmp/deployment/application/node_modules/bower/node_modules/update-notifier/node_modules/semver-diff string-length@0.1.2 /tmp/deployment/application/node_modules/bower/node_modules/update-notifier/node_modules/string-length strip-ansi@0.2.2 /tmp/deployment/application/node_modules/bower/node_modules/update-notifier/node_modules/string-length/node_modules/strip-ansi ansi-regex@0.1.0 /tmp/deployment/application/node_modules/bower/node_modules/update-notifier/node_modules/string-length/node_modules/strip-ansi/node_modules/ansi-regex which@1.0.5 /tmp/deployment/application/node_modules/bower/node_modules/which
bower is probably not installed globally (if it is, please tell me how to do that on elastic beanstalk :D ). You should instead point to the bin of bower in the node_modules folder (which is how we used to do it). We have turned away from that solution (consider it at a scale of 500 instances spinning up..) and are checking bower_components into the repo.
"scripts": {
"postinstall": "node_modules/bower/bin/bower install -F"
},