如何使用Webpack注入全局variables?
我需要一个在编译时生成的Map
的特定实例,以便将其与webpack捆绑在一起的代码提供给我。 我的用例,如果是一个Map
的实例,但这个问题真的适用于任何variables。
-
webpack.DefinePlugin
将无法正常工作,因为我的Map
实例无法存活。 我可以反序列化/序列化,但这似乎效率低下。 -
options.externals
将无法工作,因为我require
一个外部模块被捆绑器忽略。
我已经能够通过在global
设定价值来实现这一目标,但我不确定这是否是最好的方法。
这是一个可怜的例子:
webpack.config.js :
const myVar = new Map([ ['a test value', () => {}] ]); // is there a better way? global.myVar = myVar; module.exports = { entry: './entry.js', output: { filename: './output.js' }, target: 'node', }
entry.js :
console.log(global.myVar) //=> Map { { "a test value", [Function] } }
在我的真实世界的应用程序中,我的Map
值抓取文件系统,并构build正则expression式和处理程序的映射。 这应该发生在编译时,并且是一个常量映射,所以我想在我的代码被捆绑作为一个常量使用它。
我试图在entry.js
里面构buildMap
,但是得到了各种奇怪的“无法find模块”的错误,我认为主要是因为我用来构buildMap
的函数首先严重地滥用dynamic需求在目录树之外webpack的权限。
将不胜感激任何见解。