我正在webpack上学习imports-loader。我已按照教程构建了几个webpack演示项目。
以下是配置imports-loader的代码:
// ./webpack.config.js
module.exports = {
...
module: {
loaders: [
{
test: require.resolve("some-module"),
loader: "imports?this=>window"
}
]
};
我的问题:
require.resolve("some-module")
是什么?这是什么意思? 答案 0 :(得分:15)
require.resolve("<moduleName>")
returns string which contains path to the module,例如
> require.resolve('angular')
/tmp/node_modules/angular/index.js
所以在您的示例中,属性test
将包含带有模块some-module
路径的字符串,默认情况下 webpack converts字符串为正则表达式,因此最终版本loader config的内容将是这样的:
{
test: /^node_modules\/some-module\/index.js/,
loader: 'imports?this=>window"
}
如您所见,此加载程序仅适用于一个文件
答案 1 :(得分:0)
webpack的require.resolve返回模块ID-webpack.js.org/api/module-methods/#require-resolve
模块ID是webpack中的一个数字(与NodeJS相反,它是一个 字符串-文件名)。