首页 文章

WebPack-Dev-Server错误:未定义require

提问于
浏览
7

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,但是在控制台中没有任何渲染,它给了我一个 "Uncaught ReferenceError: require is not defined"

// 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");

如果有人对此有所了解,我们将不胜感激

4 回答

  • 0

    尝试添加:

    target: 'web'
    

    到您的模块块 .

  • 5

    我有同样的错误,如果有人还在努力解决这个问题,这个解决方案也帮助了我:

    ...有两种方法可以解决这个问题:1 . (推荐)不要在你的Webpack浏览器配置中激活webpack-node-externals,但是让Webpack确实在定位网络时捆绑这些模块(这很可能是你的想做)在浏览器中以其他方式加载外部模块,并将相应的importType标志添加到webpack-node-externals配置(对于脚本为var或对于AMD为amd)

    更多细节:https://github.com/liady/webpack-node-externals/issues/17#issuecomment-284222729

  • 0

    我的webpack.config.js中有以下规则

    rules: [
            {
                test: /\.js$/,
                use:['script-loader']
            }
        ]
    

    从webpack.config.js中删除上述规则删除了错误 .

    希望这可以帮助 .

  • 1

    当来自一个节点应用程序的webpack.config.js作为反应应用程序的基础时,我遇到了这个问题 .

    我有以下内容:

    target: 'web'
    

    但仍然遇到了同样的问题 .

    删除对 webpack-node-externals 的引用解决了它,当你考虑节点外部实际上在做什么时这是有意义的 .

相关问题