Cal*_*ack 8 json heroku node.js gruntjs
我使用grunt创建了一个静态单页网站.我现在正尝试使用heroku-buildpack-nodejs-grunt将它部署到heroku,用于node grunt.
下面是我的根目录的图片:

这是我的Gruntfile package.json:
Procfile:
web: node index.html
Run Code Online (Sandbox Code Playgroud)
当我运行$ git push heroku master它到达Gruntfile并失败:
-----> Found Gruntfile, running grunt heroku:production task
>> Local Npm module "grunt-contrib-uglify" not found. Is it installed?
Run Code Online (Sandbox Code Playgroud)
上述错误继续列出未找到的所有本地NPM模块.如果我列出所有loadNpmTasks而不是使用"load-grunt-tasks",我会得到完全相同的错误.
当$ heroku logs我得到:
Starting process with command `node web.js`
Error: Cannot find module '/app/web.js'
Run Code Online (Sandbox Code Playgroud)
谁能看到我出错的地方?
我唯一能想到的是,也许 Heroku 安装了你的devDependencies第一个,尝试运行 Grunt,但由于它还没有安装load-grunt-tasks,所以你没有得到该grunt.loadNpmTasks( 'grunt-contrib-uglify' );行(这load-grunt-tasks对你有用),因此 Grunt 找不到包裹。
您可以尝试更改您的方法Gruntfile以显式列出所有 npm 模块吗grunt.loadNpmTasks()?
编辑:
刚刚想起我必须做的另一件事:
heroku labs:enable user-env-compile -a myapp
heroku config:set NODE_ENV=production
Run Code Online (Sandbox Code Playgroud)
(显然替换myapp为您的 Heroku 应用程序名称。)
这使得 Heroku 允许用户设置环境变量,然后将您的服务器设置为production. 尝试一下,并将您的dependencies和设置devDependencies为您最初的设置(只是为了看看它是否有效)。