什么是require.resolve在webpack loader测试中

时间:2016-06-29 17:28:13

标签: webpack

我正在webpack上学习imports-loader。我已按照教程构建了几个webpack演示项目。

以下是配置imports-loader的代码:

// ./webpack.config.js

module.exports = {
    ...
    module: {
        loaders: [
            {
                test: require.resolve("some-module"),
                loader: "imports?this=>window"
            }
        ]
};

我的问题:

  1. 通常,"测试"应该是一个正则表达式。这里require.resolve("some-module")是什么?这是什么意思?

2 个答案:

答案 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相反,它是一个   字符串-文件名)。