Сбой сборки Heroku после успешного развертывания

#heroku #deployment #package.json

#heroku #развертывание #package.json

Вопрос:

Я регулярно развертывал 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
       
       > fsevents@1.2.9 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"
    }
}
  

Что может быть возможной причиной этого?

Комментарии:

1. Я также вижу эту проблему сегодня.

2. Это не решение вашего вопроса, но замена npm на yarn перенесла наши сборки после этого сбоя.

3. Это сделало свое дело.

4. потратив несколько часов. yarn сработал!

Ответ №1:

Хотя это не совсем решение проблемы, я смог устранить эту ошибку, перенеся свой проект на Yarn.

Ответ №2:

Я заставил его работать, исключив скрипт «postinstall» и просто используя эту строку:

«heroku-postbuild»: «npm запускает производство»