错误:部署到heroku时找不到模块'webpack'

时间:2017-01-23 01:11:52

标签: heroku webpack procfile

从其他主题(没有帮助我)来看,这似乎是一个反复出现的问题,我正在尝试将我的应用程序部署到heroku。它适用于heroku local web,我已将应用程序和git heroku push部署到主服务器上但是只要我运行heroku open,就没有任何内容加载,我收到以下错误:

  

应用程序错误应用程序和页面发生错误   无法提供服务。如果您是应用程序所有者,请检查日志   详情。

我检查了我的日志并说:

Error: Cannot find module 'webpack'

My Package JSON具有以下依赖项:

  "dependencies": {
    "babel-runtime": "^6.20.0",
    "react": "^15.4.1",
    "react-dom": "^15.4.1",
    "react-timestamp": "^3.1.0",
    "superagent": "^3.3.2"
  },
  "devDependencies": {
    "babel-core": "^6.21.0",
    "babel-eslint": "^7.1.1",
    "babel-loader": "^6.2.10",
    "babel-plugin-react-transform": "^2.0.2",
    "babel-plugin-transform-runtime": "^6.15.0",
    "babel-preset-es2015": "^6.18.0",
    "babel-preset-react": "^6.16.0",
    "babel-preset-stage-0": "^6.16.0",
    "cross-env": "^3.1.3",
    "css-loader": "^0.26.1",
    "eslint": "^3.12.2",
    "eslint-config-airbnb": "^13.0.0",
    "eslint-formatter-pretty": "^1.1.0",
    "eslint-plugin-compat": "^0.1.1",
    "eslint-plugin-import": "^2.2.0",
    "eslint-plugin-jsx-a11y": "2.2.3",
    "eslint-plugin-promise": "^3.4.0",
    "eslint-plugin-react": "^6.8.0",
    "extract-text-webpack-plugin": "^1.0.1",
    "react-transform-hmr": "^1.0.4",
    "style-loader": "^0.13.1",
    "webpack": "^1.14.0",
    "webpack-dev-server": "^1.16.2"
  }

脚本:

  "scripts": {
    "start": "node server.js",
    "build": "cross-env BABEL_ENV=production ./node_modules/.bin/webpack --config webpack.config.production.js",
    "lint": "eslint --cache --ignore-path .gitignore --format=node_modules/eslint-formatter-pretty . *.js",
    "test": "npm run lint"
  },

我需要做什么才能让它在heroku上运行?你需要在服务器上安装webpack吗?这是如何工作的

新的依赖更新

  "dependencies": {
    "babel-runtime": "^6.20.0",
    "extract-text-webpack-plugin": "^1.0.1",
    "react": "^15.4.1",
    "react-dom": "^15.4.1",
    "react-timestamp": "^3.1.0",
    "superagent": "^3.3.2",
    "webpack": "^1.14.0",
    "webpack-combine-loaders": "^2.0.3",
    "webpack-dev-server": "^1.16.2",

      "babel-core": "^6.21.0",
      "babel-eslint": "^7.1.1",
      "babel-loader": "^6.2.10",
      "babel-plugin-react-transform": "^2.0.2",
      "babel-plugin-transform-runtime": "^6.15.0",
      "babel-preset-es2015": "^6.18.0",
      "babel-preset-react": "^6.16.0",
      "babel-preset-stage-0": "^6.16.0"

  },
  "devDependencies": {
    "cross-env": "^3.1.3",
    "css-loader": "^0.26.1",
    "eslint": "^3.12.2",
    "eslint-config-airbnb": "^13.0.0",
    "eslint-formatter-pretty": "^1.1.0",
    "eslint-plugin-compat": "^0.1.1",
    "eslint-plugin-import": "^2.2.0",
    "eslint-plugin-jsx-a11y": "2.2.3",
    "eslint-plugin-promise": "^3.4.0",
    "eslint-plugin-react": "^6.8.0",
    "react-transform-hmr": "^1.0.4",
    "style-loader": "^0.13.1"

  }

ERROR

2017-01-24T13:19:09.342589+00:00 app[web.1]: webpack: bundle is now VALID.
2017-01-24T13:20:01.547772+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch
2017-01-24T13:20:01.547772+00:00 heroku[web.1]: Stopping process with SIGKILL
2017-01-24T13:20:01.695160+00:00 heroku[web.1]: Process exited with status 137
2017-01-24T13:20:01.703185+00:00 heroku[web.1]: State changed from starting to crashed
2017-01-24T13:25:57.948086+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=whapp.herokuapp.com request_id=9206d33a-fd68-461d-a4d9-dd620ad9d1c8 fwd="94.119.64.6" dyno= connect= service= status=503 bytes=
2017-01-24T13:25:58.798446+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=wheather-app.herokuapp.com request_id=48131770-43d1-4702-b201-244ec94a8011 fwd="94.119.64.17" dyno= connect= service= status=503 bytes=
2017-01-24T13:27:07.565562+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=whapp.herokuapp.com request_id=d38c3a55-6b83-4afa-85dc-944cb4607482 fwd="94.119.64.7" dyno= connect= service= status=503 bytes=
2017-01-24T13:27:08.488193+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=wheather-app.herokuapp.com request_id=fe267ccf-e202-46e6-aa47-1dc0fd2b8c78 fwd="94.119.64.4" dyno= connect= service= status=503 bytes=

1 个答案:

答案 0 :(得分:2)

将webpack(以及您依赖的任何其他工具从" devDependencies"到package.json中的"依赖关系"构建Heroku slug

您还应该能够使用简单的" webpack"而不是./node_modules/.bin/webpack。

默认情况下," devDependencies"只在Dev平台上的node_modules中安装,而Heroku被定义为生产平台。