用grunt,bower,node模块部署到heroku

我正在部署一个平均的应用程序heroku和使用凉亭和咕噜声。 我应该在git repo中包含我的节点模块吗? 如果没有,我真的不知道我需要如何部署,因为后脚本引用节点模块的凉亭安装。 我应该把我的bower_components包含在git仓库中吗? 这似乎并不像我应该因为不是后记的整个点执行凉亭安装在heroku上? 但是当我做我得到一个错误。 这里是我的鲍尔依赖:

"dependencies": { "angular": "1.2.x", "angular-mocks": "~1.2.x", "jquery": "1.10.2", "bootstrap": "~3.1.1", "angular-bootstrap" : "0.11.0" } 

和我的package.json

 { "main": "server.js", "engines": { "node": "0.10.29" }, "dependencies": { "express": "~3.4.x", "mongoose": "~3.6.x", "mongodb": "^1.4.0", "ejs": "*", "email-templates" : "1.0.0", "crypto": "0.0.3", "lodash": "~2.4.1", "aws-sdk": "2.0.0-rc11", "passport" : "~0.1.17", "passport-local" : "~0.1.6", "connect-flash" : "~0.1.1", "winston": "0.6.x", "gm" : "1.16.0", "apn" : "1.5.2", "bcrypt-nodejs" : "latest", "angular-wizard": "latest", "point-in-polygon": "latest", "node-mailgun": "0.0.2", "nodemailer" : "0.7.0", "passport-facebook" : "1.0.3" }, "devDependencies": { "supertest": "0.5.x", "bower": "0.6.x", "mocha": "1.8.x", "should": "1.2.x", "karma": "~0.10", "protractor": "^0.24.2", "http-server": "^0.6.1", "bower": "^1.3.1", "grunt-cli": "~0.1.13", "grunt-env": "~0.4.1", "grunt-node-inspector": "~0.1.3", "grunt-contrib-watch": "~0.6.1", "grunt-contrib-jshint": "~0.10.0", "grunt-contrib-csslint": "^0.2.0", "grunt-contrib-uglify": "~0.4.0", "grunt-contrib-cssmin": "~0.9.0", "grunt-nodemon": "~0.2.0", "grunt-concurrent": "~0.5.0", "grunt-mocha-test": "~0.10.0", "grunt-karma": "~0.8.2", "grunt-protractor-runner": "~1.0.0", "load-grunt-tasks": "~0.4.0", "jasmine-reporters": "~0.4.0", "karma": "~0.12.0", "karma-jasmine": "~0.2.1", "karma-coverage": "~0.2.0", "karma-chrome-launcher": "~0.1.2", "karma-firefox-launcher": "~0.1.3", "karma-phantomjs-launcher": "~0.1.2", "karma-junit-reporter": "~0.2", "shelljs": "^0.2.6", "xunit-file": "*" }, "scripts": { "postinstall": "node_modules/.bin/bower install", "pretest": "npm install", "test": "karma start test/karma.conf.js", "test-single-run": "karma start test/karma.conf.js --single-run", "preupdate-webdriver": "npm install", "update-webdriver": "webdriver-manager update", "preprotractor": "npm run update-webdriver", "protractor": "protractor test/protractor-conf.js", "update-index-async": "node -e \"require('shelljs/global'); sed('-i', /\\/\\/@@NG_LOADER_START@@[\\s\\S]*\\/\\/@@NG_LOADER_END@@/, '//@@NG_LOADER_START@@\\n' + cat('bower_components/angular-loader/angular-loader.min.js') + '\\n//@@NG_LOADER_END@@', 'app/index-async.html');\"" } } 

我得到这个错误:

  5816 info fsevents@0.2.0 Failed to exec install script 5817 error fsevents@0.2.0 install: `node-gyp rebuild` 5817 error Exit status 1 5818 error Failed at the fsevents@0.2.0 install script. 5818 error This is most likely a problem with the fsevents package, 5818 error not with npm itself. 5818 error Tell the author that this fails on your system: 5818 error node-gyp rebuild 5818 error You can get their info via: 5818 error npm owner ls fsevents 5818 error There is likely additional logging output above. 5819 error System Linux 3.8.11-ec2 5820 error command "/tmp/build_2cc32425-eae7-45af-8b95-104e1c2c7c53/vendor/node/bin/node" "/tmp/build_2cc32425-eae7-45af-8b95-104e1c2c7c53/vendor/node/bin/npm" "rebuild" 5821 error cwd /tmp/build_2cc32425-eae7-45af-8b95-104e1c2c7c53 5822 error node -v v0.10.29 5823 error npm -v 1.4.14 5824 error code ELIFECYCLE 5825 verbose exit [ 1, true ] ! Push rejected, failed to compile Node.js app 

我读过,我需要npm安装-g业力,但是没有帮助。 或凉亭安装错误…我的开发依赖不正确?

我发现Joe Eames的这个video教程对于使用MEAN堆栈进行开发并部署到Heroku非常有用: http : //pluralsight.com/training/courses/TableOfContents? courseName=building – angularjs – nodejs – apps – mean& highlight=

给出的指导是,你不应该在git仓库中包含你的node_modules,你应该让Heroku在部署时为你构build这些仓库。

通过你的文件阅读,似乎你可能有太多的依赖列出。 也就是说,我不认为你需要把'Bower'列为package.json中的一个dev-dependency。 同样,包含在package.json中的脚本也不是我以前真正见过的。 我会使用Heroku命令或者在这里find的grunt构build包进行部署:github.com/mbuchetics/heroku-buildpack-nodejs-grunt.git

有关如何使用grunt部署到Heroku的更多说明,请访问: https : //medium.com/@3runjo/how-to-deploy-a-grunt-project-on-heroku-c227cb1ddc56

我意识到这不是一个完整的答案,但应该给你足够的线索去解决你的问题。

你缺less一个用于heroku的nodejs buildpack。 另外,如果你正在使用咕噜声,因为我看到你需要去一个咕噜nodejs buildpack。 这是一个:

https://github.com/mbuchetics/heroku-buildpack-nodejs-grunt

你只需要在你的Gruntfile.js中注册在heroku中构build的任务,例如:

 grunt.registerTask('heroku:development', 'clean less mincss'); grunt.registerTask('heroku:production', 'clean less mincss uglify'); 

还要记得添加configurationvariables到heroku应用程序:

 heroku config:add BUILDPACK_URL=https://github.com/mbuchetics/heroku-buildpack-nodejs-grunt.git 

你正在package.json中使用真正的老版本,我的是:

 "scripts": { "postinstall": "./node_modules/bower/bin/bower install" }, "dependencies": { "bower": "^1.3.5", 

将此添加到您的.slugignore文件中:

 /node_modules/grunt-karma/ /node_modules/grunt-protractor-runner/ /node_modules/karma/ /node_modules/karma-chrome-launcher/ /node_modules/karma-mocha/ /node_modules/karma-ng-html2js-preprocessor/ /node_modules/ngmin/ /node_modules/protractor/ /node_modules/rfile/ /node_modules/rfileify/ /node_modules/rhtml/ 

这解决了我的问题与fsevents@0.2.0问题。