Webpack本身工作正常,但webpack-dev-server却没有。基本上,webpack为我创建了2个构建文件,一个后端捆绑和一个前端捆绑。所以,我为每个人都有一个webpack-config.js。我想用webpack-dev-server开发我的前端代码,你可以从我的webpack-config文件中看到我的front-end-bundle.js。当我运行web-pack-dev服务器时,它能够找到并构建我的front-end.js和index.html,但是在控制台中没有任何渲染,它给了我一个“未捕获的ReferenceError:require未定义“
// var nodeExternals = require('webpack-node-externals');
var webpack = require('webpack');
module.exports = {
entry: './browser/entry.js',
output: {
path: './builds',
filename: 'frontend.js'
},
plugins: [
new webpack.DefinePlugin({
'process.env.NODE_ENV': '"development"'
}),
new webpack.DefinePlugin({
'process.env': {
'NODE_ENV': '"development"'
}
})
],
module: {
loaders: [
{
test: [/\.es6$/, /\.js$/, /\.jsx$/],
exclude: 'node_modules',
loader: 'babel-loader',
query: {
presets: ['react', 'es2015', 'stage-1']
}
},
{
test: /\.json$/,
loader: 'json-loader'
},
{
test: /\.html$/,
loader: 'html-loader'
},
]
},
resolve: {
extensions: ['', '.js', '.es6', '.json'],
root: '/Users/johnhenry/Desktop/GAMR/gamr/browser'
},
devServer: {
contentBase: 'builds/dev-build'
},
target: 'node',
// externals: [nodeExternals()]
}
错误是由我在前端构建中触发的(它只在dev服务器构建中,而不是在非dev服务器webpack构建中):
function(module, exports) {
module.exports = require("url");
如果有人对此有所了解,我们将不胜感激
答案 0 :(得分:5)
尝试添加:
target: 'web'
到你的模块。
答案 1 :(得分:1)
我有同样的错误,如果有人还在努力解决这个问题,这个解决方案也帮助了我:
......有两种方法可以解决这个问题:
<强> 1。 (推荐)不要在Webpack浏览器配置中激活webpack-node-externals,但让Webpack确实捆绑这些模块 在定位网络时(这很可能是您想要做的)
- 在浏览器中以其他方式加载外部模块,并将相应的importType标志添加到webpack-node-externals配置(对于脚本为var或对于AMD为amd)
醇>
更多详细信息:https://github.com/liady/webpack-node-externals/issues/17#issuecomment-284222729
答案 2 :(得分:0)
我的webpack.config.js中有以下规则
rules: [
{
test: /\.js$/,
use:['script-loader']
}
]
从webpack.config.js中删除上述规则,删除了错误。
希望这有帮助。
答案 3 :(得分:0)
当来自节点应用的webpack.config.js作为React应用的基础时,我遇到了这个问题。
我有以下内容:
target: 'web'
但仍然遇到相同的问题。
删除对 webpack-node-externals 的引用即可解决此问题,当您考虑节点外部的实际作用时,这确实很有意义。