捆绑时,力矩未定义

时间:2018-09-22 21:42:09

标签: javascript webpack momentjs bundle

我正在尝试捆绑moment.js,但捆绑后它始终返回未定义:

我的webpack

var path = require("path");
var webpack = require("webpack");

module.exports = {
    mode: "development",
    entry: {
        frb: "./src/app/loader.js"
    },
    output: {
        path: path.resolve(__dirname, "./src/lib"),
        filename: "bundle.js"
    },
    module: {
        rules: [
            {
                test: /\.(js|jsx)$/,
                exclude: /(node_modules)/,
                loader: "babel-loader",
                query: {
                    presets: [
                        [
                            "@babel/preset-env",
                            {
                                targets: {
                                    chrome: "58",
                                    ie: "9"
                                }
                            }
                        ]
                    ]
                }
            }
        ]
    },
    plugins: [
        // Ignore all locale files of moment.js
        new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/),
        new webpack.ProvidePlugin({
            moment: "moment"
        })
    ]
};

我的loader.js仅包含:

require("moment")

1 个答案:

答案 0 :(得分:0)

从您的webpack配置中删除整个插件部分,并查看其是否有效。 我读的问题/文档很少,而最后一部分只是试图从现在开始导入最少的代码,应该与特定的版本一起使用。

看看以下链接。 https://webpack.js.org/plugins/ignore-plugin/ https://github.com/moment/moment/issues/2373

我建议的另一件事是尝试立即在loader.js中要求其他模块,看看这是否属于捆绑包。只是为了验证这个问题仅在瞬间还是在所有模块上。如果所有模块都发生这种情况,则说明配置中还有其他错误。