我正在尝试捆绑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")
答案 0 :(得分:0)
从您的webpack配置中删除整个插件部分,并查看其是否有效。 我读的问题/文档很少,而最后一部分只是试图从现在开始导入最少的代码,应该与特定的版本一起使用。
看看以下链接。 https://webpack.js.org/plugins/ignore-plugin/ https://github.com/moment/moment/issues/2373
我建议的另一件事是尝试立即在loader.js中要求其他模块,看看这是否属于捆绑包。只是为了验证这个问题仅在瞬间还是在所有模块上。如果所有模块都发生这种情况,则说明配置中还有其他错误。