1

我已经为此工作了几个小时,但没有运气。我刚去下载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 运行的三个命令引起的(根据他们的指南)。当我在本地运行命令时,我可以复制错误。

 $ 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-storagenode_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 或者我是愚蠢的。请帮忙。

4

2 回答 2

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

于 2015-10-07T22:28:32.370 回答
1

我也有同样的问题,可以报告运行npm shrinkwrap,提交和部署到 Heroku 解决了这个问题。

于 2016-03-09T20:08:35.077 回答