13

我试图将一个变量注入到我的 webpack 包中的每个模块中,以便为每个文件提供 JS 错误的调试信息。我已启用

node: {
   __filename: true
}

webpack 中的当前文件路径

在我的 webpack.config 中,但我想注入类似的东西

var filename = 'My filename is: ' + __filename;

编译前进入每个模块。我已经看到带有选项的横幅插件raw,但似乎这只会将横幅注入 webpack 闭包之外,而不是我想要的将脚本注入每个模块的结果。

4

2 回答 2

21

我使用变量来解析webpack.config.js文件中的几个变量:

plugins: [
    new webpack.DefinePlugin({
      ENVIRONMENT: JSON.stringify(process.env.NODE_ENV || 'development'),
      VERSION: JSON.stringify(require('./package.json').version)
    })
]

它可能不够动态,但如果是,那么您可能能够绕过该加载程序解决方案。

于 2015-06-01T10:22:27.433 回答
2

编写自己的加载器:

my_project/my_loaders/filename-loader.js:

module.exports = function(source) {
  var injection = 'var __filename = "' + this.resourcePath + '";\n';
  return injection + source;
};

将其添加到您的管道并确保也添加配置:

resolveLoader: {
  modulesDirectories: ["my_loaders", "node_modules"]
}

请参阅有关如何编写加载程序的文档。

于 2015-04-24T22:15:04.810 回答