代码之家  ›  专栏  ›  技术社区  ›  Batman

捆绑时力矩未定义

  •  1
  • Batman  · 技术社区  · 6 年前

    我正在尝试捆绑moment.js,但捆绑后它一直未定义:

    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 回复  |  直到 6 年前
        1
  •  0
  •   Shubham Gupta    6 年前

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

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

    我建议的另一件事是,尝试在loader.js中除了moment之外还需要一些其他模块,看看这是否是包的一部分。只是为了验证这个问题是由Just-moment或所有模块造成的。如果所有模块都发生了这种情况,那么在配置中还有一些不正确的地方。