如何解决 Heroku 错误:找不到模块"傀儡集群"?



我正在尝试从我的 Heroku 应用程序运行单个脚本。我正在尝试使用以下命令在 Heroku 服务器上运行它:

heroku run node path/to/myScript.js

当我在本地运行时,此脚本可以完美运行。但是尝试在 Heroku 上远程运行它时出现错误。

我希望看到脚本正确运行的证据,但相反,我收到以下错误。

错误:找不到模块"傀儡群集">

该依赖项位于我的包中.json

包.json
"dependencies": {
...
"puppeteer-cluster": {
"version": "0.18.0",
"resolved": "https://registry.npmjs.org/puppeteer-cluster/-/puppeteer-cluster-0.18.0.tgz",
"integrity": "sha512-xxxxxxxx+xxxxxxxxxxxxxxxxxxxxx==",
"requires": {
"debug": "^4.1.1"
}
},
...

到目前为止,我尝试过什么。

  1. 试图确保我通过以下方式将所有新文件正确提交到 git。

    git add .
    git commit -m "update"
    git push heroku master
    
  2. 我根据这个 SO 答案尝试了以下命令序列。

    $ heroku config:set NODE_MODULES_CACHE=false
    $ git commit -am 'disable_node_modules_cache' --allow-empty
    $ git push heroku master
    
  3. 我尝试从头开始重建和重新部署我的应用程序,如下所示。

    heroku create my-awesome-app --buildpack heroku/nodejs
    

但是我得到了错误:

my-awesome-app 这个名字已经被采用

  1. 此页面列出了以下内容,我尝试过但没有成功。

heroku config:set NODE_MODULES_CACHE=false
接下来,你应该确保你没有意外地将模块签入 git。
最后,您应该检查以确保您的依赖项正确列在 package.json 中。

  1. 我还尝试了仔细检查以确保我没有跟踪任何 git 文件,检查以下内容,如此处的建议。

    git ls-files | grep node_modules
    
  2. 在检查本地节点版本后,我将节点版本添加到我的 package.json 中。

    node --version
    v12.10.0
    
包.json
"name": "myapp",
"description": "a really cool app",
"version": "0.1.0",
"engines": {
"node": "12.10.0"
},
  1. 我还查看了此位置的信息。

我做错了什么?接下来我应该尝试什么?

以下内容适用于我的情况。

我在本地重新安装了所有依赖项。

rm -rf node_modules
# <manually remove node_modules>
# <manually remove package-lock.json>
npm cache clean --force # `npm cache clean` is obsolete
npm cache verify
npm install

然后重新部署到希罗库。

git add .
git commit -m "update"
git push heroku master

感谢这个 SO 答案。

最新更新