2016-09-25 33 views
3

我試圖構建我的prod webpack文件,並得到「無法解析模塊」 AWS-SDK,child_process」。在Webpack的/ node_modules/watchpack中獲取「無法解析模塊'aws-sdk','child_process','net'」

所有這些錯誤的開始具有相同路徑: 「ERROR中(的WebPack)/〜/ watchpack /〜/ chokidar /〜/ fsevents /」

例如:

ERROR in(webpack)/~/watchpack/~/chokidar/~/fsevents/~/node-pre-gyp/lib/node-pre-gyp.js 未找到模塊:錯誤:無法解析'文件'或'目錄'../package

ERROR in(webpack)/~/watchpack/~/chokidar/~/fsevents/~/node-pre-gyp/lib/info.js 未找到模塊:錯誤:無法解析模塊'aws-sdk'

ERROR in(webpack)/~/watchpack/~/chokidar/~/fsevents/~/node-pre-gyp/lib/publish.js 未找到模塊:錯誤:無法解析模塊'aws-sdk'

錯誤中(的WebPack)/~/watchpack/~/chokidar/~/fsevents/~/node-pre-gyp/lib/testbinary.js 模塊未找到:錯誤:無法解析模塊 'child_process'

錯誤( webpack)/~/watchpack/~/chokidar/~/fsevents/~/forever-agent/index.js 未找到模塊:錯誤:無法解析模塊'net'

下面是我的來自package.json的依賴關係:

「devDependencies」:{

"babel-core": "^6.4.5", 
"babel-loader": "^6.2.1", 
"babel-preset-es2015": "^6.3.13", 
"babel-preset-react": "^6.3.13", 
"css-loader": "^0.25.0", 
"file-loader": "^0.9.0", 
"json-loader": "^0.5.4", 
"node-sass": "^3.9.0", 
"react": "^15.3.2", 
"sass-loader": "^4.0.1", 
"style-loader": "^0.13.1", 
"url-loader": "^0.5.7", 
"webpack": "^1.13.2", 
"webpack-bundle-tracker": "0.0.93", 
"webpack-dev-server": "^1.15.1" 

}, 「依賴性」:{

"chart.js": "^1.1.1", 
"jquery": "^2.2.0", 
"material-ui": "^0.15.4", 
"react-addons-css-transition-group": "^15.3.1", 
"react-bootstrap": "^0.30.3", 
"react-chartjs": "^0.8.0", 
"react-dom": "^15.3.0", 
"react-hot-loader": "^3.0.0-beta.3", 
"react-redux": "^4.4.5", 
"react-router": "^2.7.0", 
"react-sortable-hoc": "0.0.8", 
"react-tap-event-plugin": "^1.0.0", 
"redux": "^3.6.0" 

}

+0

。它也只發生在生產環境中。你找到解決方案嗎? – Azuli42

回答

0

我有同樣的問題,其實你嘗試應用服務器模塊中的客戶端,來解決這個問題,在您的WebPack配置客戶端添加以下代碼:

node: { 
    fs: "empty", 
    child_process : "empty", 
    net : "empty", 
} 
1

我有同樣的煩惱,同時捆綁服務器。我從babel-loader中排除了node_modules,但這還不足以防止webpack綁定node_modules。

這裏的解決方案:

  • 如果你不已經擁有了它,添加target: 'node'webpack.config.js。這將排除本地節點模塊(路徑,fs等)被捆綁。使用webpack-node-externals排除node_modules

例子:

import nodeExternals from 'webpack-node-externals'; 
    ... 
    const browserConfig = { ... }; 
    ... 
    const serverConfig = { 
     ... 
     target: 'node', 
     externals: [nodeExternals()], 
     ... 
    }; 
    export default [ browserConfig, serverConfig ]; 
+0

我認爲這是正確的答案,因爲我不應該將依賴關係捆綁到節點應用程序。他們可以正常使用,他們爲什麼要這樣做?或者有人有更好的主意:)? –

0

好吧,我想你忘記了--config使用:

webpack --config webpack.config.js 
我有完全相同的問題,同時不需要AWS-SDK自己
相關問題