2017-01-23 228 views
1

從其他主題來看(其中沒有幫助我)當無法找到模塊「的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= 

回答

2

移動的WebPack(以及任何其他工具,你依靠在「devDependencies」到「依賴性」構建Heroku slug你的package.json

你應該也可以用簡單的「webpack」來代替./node_modules/.bin/webpack。

默認情況下,「devDependencies」只得到安裝在開發平臺上node_modules,而Heroku的被定義爲一個生產平臺。

+0

謝謝,但現在它似乎每次我添加一個包到生產,另一個缺失。最後一個'webpack-combine-loaders'我甚至沒有使用過。當我做heroku打開時,頁面永遠加載,然後告訴我它缺少下一個模塊'找不到模塊:錯誤:無法解析/ app'中的模塊'babel'。有哪些模塊應該可以從某處獲得?這不是Heroku文檔中關於非常好的東西。 – HGB

+0

看起來您正在生產中使用babel *包,因此也將它們移至「依賴關係」。 在最糟糕的情況下,只需將所有內容移動到「依賴關係」即可使其工作,然後就可以開始將不需要的包移回devDependencies。 –

+0

另一件需要考慮的事情是,如果你在開發環境中用「npm install -g」安裝了任何軟件包,它們可能不在你的package.json中,如果它們是生產所需的,那麼Heroku不會找到他們。 但無論如何,首先從devDependencies到依賴關係的所有內容開始,看看是否能解決問題。如果是這樣的話,那麼你的所有依賴關係確實在package.json中被引用,然後你可以簡單地移動到devDependencies,無論生產中需要什麼包。 –