今天,我想将node.js
应用程序部署到heroku。我在本地也在使用bower
和grunt
进行开发,我想仍然使用它们。
现在,按照我在网上找到的一些建议,我添加bower
到dependencies
并添加了"postinstall": "node_modules/.bin/bower install
到package.json
postinstall
。
现在我遇到了一些问题grunt
。当我将咕gr的依赖dependencies
从移到时devDependencies
grunt
,无法识别我的依赖tasks
,例如当我有
{
"name": "js-linkedin-connector",
"version": "0.1.0",
"dependencies": {
"passport": "~0.1.17",
"passport-local": "~0.1.6",
"passport-linkedin-oauth2": "~1.0.1",
"connect": "~2.11.0",
"underscore": "~1.5.2",
"bower": "1.2.x",
"grunt": "~0.4.1",
"grunt-cli": "0.1.11",
"load-grunt-tasks": "~0.1.0",
"grunt-contrib-copy": "~0.4.1",
"grunt-contrib-concat": "~0.3.0",
"grunt-contrib-coffee": "~0.7.0",
"grunt-contrib-uglify": "~0.2.0",
"grunt-contrib-compass": "~0.5.0",
"grunt-contrib-jshint": "~0.6.0",
"grunt-contrib-cssmin": "~0.6.0",
"grunt-contrib-connect": "~0.5.0",
"grunt-contrib-clean": "~0.5.0",
"grunt-contrib-htmlmin": "~0.1.3",
"grunt-contrib-watch": "~0.5.2",
"grunt-autoprefixer": "~0.2.0",
"grunt-usemin": "~2.0.0",
"grunt-svgmin": "~0.2.0",
"grunt-rev": "~0.1.0",
"grunt-concurrent": "~0.3.0",
"grunt-jasmine-node": "~0.1.0",
"grunt-google-cdn": "~0.2.0",
"grunt-ngmin": "~0.0.2",
"time-grunt": "~0.1.0",
"grunt-karma": "~0.6.2",
"connect-livereload": "~0.3.0"
},
"devDependencies": {
"karma-ng-scenario": "~0.1.0",
"karma-script-launcher": "~0.1.0",
"karma-chrome-launcher": "~0.1.0",
"karma-firefox-launcher": "~0.1.0",
"karma-html2js-preprocessor": "~0.1.0",
"karma-jasmine": "~0.1.3",
"karma-requirejs": "~0.1.0",
"karma-phantomjs-launcher": "~0.1.0",
"karma": "~0.10.4",
"karma-ng-html2js-preprocessor": "~0.1.0"
},
"engines": {
"node": ">=0.8.0",
"npm": "1.3.x"
},
"scripts": {
"test": "grunt test",
"postinstall": "node_modules/.bin/bower install;node_modules/.bin/grunt server:dist"
}
}
在我package.json
键入时,./node_modules/.bin/grunt
我得到:
Warning: Task "jshint" not found. Use --force to continue.
Aborted due to warnings.
但是当我将grunt
依赖项移动到devDependencies
:
{
"name": "js-linkedin-connector",
"version": "0.1.0",
"dependencies": {
"passport": "~0.1.17",
"passport-local": "~0.1.6",
"passport-linkedin-oauth2": "~1.0.1",
"connect": "~2.11.0",
"underscore": "~1.5.2",
"bower": "1.2.x"
},
"devDependencies": {
"grunt": "~0.4.1",
"grunt-cli": "0.1.11",
"load-grunt-tasks": "~0.1.0",
"grunt-contrib-copy": "~0.4.1",
"grunt-contrib-concat": "~0.3.0",
"grunt-contrib-coffee": "~0.7.0",
"grunt-contrib-uglify": "~0.2.0",
"grunt-contrib-compass": "~0.5.0",
"grunt-contrib-jshint": "~0.6.0",
"grunt-contrib-cssmin": "~0.6.0",
"grunt-contrib-connect": "~0.5.0",
"grunt-contrib-clean": "~0.5.0",
"grunt-contrib-htmlmin": "~0.1.3",
"grunt-contrib-watch": "~0.5.2",
"grunt-autoprefixer": "~0.2.0",
"grunt-usemin": "~2.0.0",
"grunt-svgmin": "~0.2.0",
"grunt-rev": "~0.1.0",
"grunt-concurrent": "~0.3.0",
"grunt-jasmine-node": "~0.1.0",
"grunt-google-cdn": "~0.2.0",
"grunt-ngmin": "~0.0.2",
"time-grunt": "~0.1.0",
"grunt-karma": "~0.6.2",
"connect-livereload": "~0.3.0",
"karma-ng-scenario": "~0.1.0",
"karma-script-launcher": "~0.1.0",
"karma-chrome-launcher": "~0.1.0",
"karma-firefox-launcher": "~0.1.0",
"karma-html2js-preprocessor": "~0.1.0",
"karma-jasmine": "~0.1.3",
"karma-requirejs": "~0.1.0",
"karma-phantomjs-launcher": "~0.1.0",
"karma": "~0.10.4",
"karma-ng-html2js-preprocessor": "~0.1.0"
},
"engines": {
"node": ">=0.8.0",
"npm": "1.3.x"
},
"scripts": {
"test": "grunt test",
"postinstall": "node_modules/.bin/bower install;node_modules/.bin/grunt server:dist"
}
}
一切正常。
有什么问题,如何解决将我的grunt
+bower
应用程序部署到heroku?
将您的Grunt依赖项放在devDependencies
所属的位置。使用自定义buildpack允许Heroku在其平台上执行您的Grunt流。
Buildpacks让您以不同的方式启动应用程序,在这种情况下,您需要从配置设置中对其进行更改:
heroku config:set BUILDPACK_URL=https://github.com/mbuchetics/heroku-buildpack-nodejs-grunt.git
然后,只需将heroku
任务添加到您的Grunt配置中即可。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句