從其他主題來看(其中沒有幫助我)當無法找到模塊「的WebPack」,這似乎是一個反覆出現的問題,我想我的部署應用的Heroku。它的工作原理罰款heroku local web
,我已經部署應用程序和git heroku push
到主,但是隻要我跑heroku open
,沒有負載,並且我收到以下錯誤:錯誤:部署到Heroku的
Application error An error occurred in the application and your page could not be served. If you are the application owner, check your logs for details.
我檢查我的日誌,它說:
Error: Cannot find module 'webpack'
我的包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=
謝謝,但現在它似乎每次我添加一個包到生產,另一個缺失。最後一個'webpack-combine-loaders'我甚至沒有使用過。當我做heroku打開時,頁面永遠加載,然後告訴我它缺少下一個模塊'找不到模塊:錯誤:無法解析/ app'中的模塊'babel'。有哪些模塊應該可以從某處獲得?這不是Heroku文檔中關於非常好的東西。 – HGB
看起來您正在生產中使用babel *包,因此也將它們移至「依賴關係」。 在最糟糕的情況下,只需將所有內容移動到「依賴關係」即可使其工作,然後就可以開始將不需要的包移回devDependencies。 –
另一件需要考慮的事情是,如果你在開發環境中用「npm install -g」安裝了任何軟件包,它們可能不在你的package.json中,如果它們是生產所需的,那麼Heroku不會找到他們。 但無論如何,首先從devDependencies到依賴關係的所有內容開始,看看是否能解決問題。如果是這樣的話,那麼你的所有依賴關係確實在package.json中被引用,然後你可以簡單地移動到devDependencies,無論生產中需要什麼包。 –