我已经在这工作了几个小时,没有运气。我刚刚将Ghost 0.7.0
下载到我的本地计算机上,开箱即用,npm start
完美无缺。我尝试安装第一个软件包时遇到错误。我正在安装的软件包是ghost-s3-storage。但是,在部署到heroku时,所有程序包都返回类似的错误。
以下是我的步骤......
$ npm start
-> works
$ npm install --save ghost-s3-storage
$ npm start
-> still works
所以现在我的package.json
包含准确的依赖关系,因此Heroku应该正确部署,但事实并非如此。它似乎是由Heroku运行的三个命令引起的(根据他们的guide)。当我在本地运行命令时,我可以复制错误。
$ rm -rf node_modules
$ npm install --quiet --production
$ npm start
-> ERROR: Ghost is unable to start due to missing dependencies:
Cannot find module 'ghost-s3-storage'
此时,我的package.json
看起来是正确的。
package.json
"dependencies": {
...,
"ghost-s3-storage": "^0.2.2",
...,
}
但是ghost-s3-storage
中缺少node_modules
。
$ npm ls
-> UNMET DEPENDENCY ghost-s3-storage@^0.2.2
-> npm ERR! missing: ghost-s3-storage@^0.2.2, required by ghost@0.7.0
所以我很难过。 Heroku是愚蠢的,还是node.js,还是我。请帮忙。
答案 0 :(得分:2)
我有完全相同的问题,我使用npm shrinkwrap
解决了这个问题。
npm shrinkwrap
锁定了包依赖项(https://docs.npmjs.com/cli/shrinkwrap)
另见此建议: https://docs.npmjs.com/misc/faq#should-i-check-my-node-modules-folder-into-git
答案 1 :(得分:1)
我也有同样的问题,可以报告运行npm shrinkwrap
,提交和部署到Heroku解决了这个问题。