我试图将一个变量注入我的webpack包中的每个模块,以获得每个文件的JS错误的调试信息。我已启用
node: {
__filename: true
}
在我的webpack.config中,但我想注入类似
的东西var filename = 'My filename is: ' + __filename;
在编译之前进入每个模块。我已经看到了带有raw
选项的Banner Plugin,但似乎这只会在webpack闭包之外注入横幅,而不是我希望将脚本注入每个模块的结果。
答案 0 :(得分:17)
我使用变量来解析webpack.config.js
文件中的几个变量:
plugins: [
new webpack.DefinePlugin({
ENVIRONMENT: JSON.stringify(process.env.NODE_ENV || 'development'),
VERSION: JSON.stringify(require('./package.json').version)
})
]
它可能不够动态,但如果是,那么您可以绕过该加载程序解决方案。
答案 1 :(得分:2)
编写自己的装载程序:
<强> MY_PROJECT / my_loaders /文件名-loader.js:强>
module.exports = function(source) {
var injection = 'var __filename = "' + this.resourcePath + '";\n';
return injection + source;
};
将其添加到您的管道中,并确保添加配置:
resolveLoader: {
modulesDirectories: ["my_loaders", "node_modules"]
}
请参阅how to write a loader上的文档。