成功部署后,Heroku构建失败

问题描述

我定期部署到Heroku,过去一切正常。然后,仅更改一行代码并将其推送到Heroku后就失败了。

我还没有更新或安装任何东西。这种行为对我来说似乎太奇怪了。

\-----> Node.js app detected
       
-----> Creating runtime environment
       
       NPM_CONfig_LOGLEVEL=error
       NODE_ENV=production
       NODE_MODULES_CACHE=true
       NODE_VERBOSE=false
       
-----> Installing binaries
       engines.node (package.json):  12.18.1
       engines.npm (package.json):   unspecified (use default)
       
       Resolving node version 12.18.1...
       Downloading and installing node 12.18.1...
       Using default npm version: 6.14.5
       
-----> Restoring cache
       - node_modules
       
-----> Installing dependencies
       Installing node modules
       
       > [email protected] install /tmp/build_afdd9f79/node_modules/fsevents
       > node install
       
       npm ERR! Cannot read property 'length' of undefined
       
       npm ERR! A complete log of this run can be found in:
       npm ERR!     /tmp/npmcache.Lt04X/_logs/2020-09-10T20_50_40_685Z-debug.log
-----> Build Failed
       
       We're sorry this build is failing! You can troubleshoot common issues here:
       https://devcenter.heroku.com/articles/troubleshooting-node-deploys
       
       If you're stuck,please submit a ticket so we can help:
       https://help.heroku.com/
       
       love,Heroku
       
 !     Push rejected,Failed to compile Node.js app.
 !     Push Failed

package.json如下:

{
    "private": true,"scripts": {
        "dev": "npm run development","development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js","watch": "npm run development -- --watch","watch-poll": "npm run watch -- --watch-poll","hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js","prod": "npm run production","production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js","build": "npm run production","postinstall": "npm run prod","heroku-postbuild": "npm run prod"
    },"devDependencies": {
        "axios": "^0.19.2","bootstrap": "^4.5.0","browser-sync": "^2.26.7","browser-sync-webpack-plugin": "^2.2.2","cross-env": "^5.1","jquery": "^3.5.1","laravel-mix": "^4.0.7","lodash": "^4.17.13","popper.js": "^1.16.1","resolve-url-loader": "^2.3.1","sass": "^1.26.9","sass-loader": "7.*","vue": "^2.6.11","vue-template-compiler": "^2.6.11"
    },"dependencies": {
        "@chenfengyuan/vue-number-input": "^1.2.1","country-list": "^2.2.0","moment": "^2.27.0","vue-cool-lightBox": "^2.5.1","vue-loading-overlay": "^3.3.2","vue-moment": "^4.1.0","vue-recaptcha": "^1.3.0","vue-resource": "^1.5.1","vue-router": "^3.3.4","vue-select": "^3.10.3","vue-stripe-elements-plus": "^0.3.2","vuex": "^3.4.0"
    },"engines": {
        "node": "12.18.1"
    }
}

这可能是什么原因?

解决方法

尽管不是严格解决问题的方法,但我可以通过将项目迁移到Yarn来克服此错误。

,

我通过消除“后安装”脚本而只使用此行来使其工作:

“ heroku-postbuild”:“ npm运行生产”