【问题标题】:Getting error in browser console on using "externals" for excluding node_modules在浏览器控制台中使用“外部”排除 node_modules 时出错
【发布时间】:2017-01-11 20:50:22
【问题描述】:

我正在做一个反应项目。当我使用“排除:/node_modules”时,我的项目没有排除 node_modules。所以我阅读了一些已解决的问题并将以下代码添加到我的 webpack.config.js 中。

var nodeExternals = require('webpack-node-externals');
...
module.exports = {
...
target: 'node', // in order to ignore built-in modules like path, fs,     etc. 
externals: [nodeExternals()], // in order to ignore all modules in   node_modules folder 
...
};

我的 webpack.config.js 然后看起来像这样

var path = require('path');
var webpack = require('webpack');
var nodeExternals = require('webpack-node-externals');

module.exports = {
    devtool: 'eval',
    entry: [
        'webpack-dev-server/client?http://localhost:3000',
        'webpack/hot/only-dev-server',
        './dev/js/index.js'
    ],
    target: 'node', // in order to ignore built-in modules like path, fs, etc.
    externals: [nodeExternals()], // in order to ignore all modules in node_modules
    module: {

        loaders: [
            {
                test: /\.js$/,
                loaders: ['react-hot', 'babel'],
                exclude: /node_modules/
            },
            {
                test: /\.scss/,
                loader: 'style-loader!css-loader!sass-loader'
            }
        ]
    },
    output: {
        path: path.join(__dirname, 'dist'),
        filename: 'bundle.js',
        publicPath: '/static/'
    },
    plugins: [
        new webpack.HotModuleReplacementPlugin()
    ]
};

当我运行我的应用程序时,我在控制台中收到此错误

我该如何解决这个错误?

【问题讨论】:

    标签: reactjs webpack node-modules


    【解决方案1】:

    我认为documentationwebpack-node-externals 的行是:

    在后端与 Webpack 捆绑时

    这个库不是用于在浏览器中运行的包。只有 backend 包在节点上运行。

    在你的加载器中排除 node_modules 应该足以排除未引用的 node_modules。否则,您需要将引用的 node_modules 包含在包中。

    对于浏览器,您只想排除页面上已经存在的模块。例如,如果您从 cdn 中提取反应,这可能很有用。而且您不想在应用程序包中包含所有 react.js。

    【讨论】:

    • 我应该删除它
    • 是的,浏览器捆绑包不需要这个模块。
    • 但是为什么浏览器控制台热加载器说 576 模块更新,每次我对组件进行任何更改。为什么每次都更新这么多模块。这意味着节点模块也每次都会更新。我该怎么办?
    • 排除 .scss 加载器的 node_modules。
    • 不走运。当我在 .scss 加载程序中添加“排除:/node_modules/”时给我错误。
    猜你喜欢
    • 1970-01-01
    • 2021-08-26
    • 2013-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-31
    • 2013-01-25
    • 1970-01-01
    相关资源
    最近更新 更多