我正在写一个Webpack插件 . 在模块解析期间,此插件应为某些模块动态添加特定的加载程序,但不是全部 .
我现在的想法是利用 normal-module-factory
的 after-resolve
事件 . 在那里,我可以修改数组 data.loaders
. 一些调试向我显示该数组包含 { loader: string, options: object | undefined }
形式的对象 .
我找不到任何关于动态修改每个模块加载器的文档 . 所以我想知道:
-
这是正确的方法吗?
-
一些(但不是全部)现有的
loaders
条目包含一个附加属性ident
,如下所示:'ref--0-0'
. 我应该何时设置此属性,并使用什么值?
1 回答
我不确定它是否是最佳解决方案,但此代码似乎有效:
关于额外的
ident
属性:Webpack需要能够比较加载器选项 . 默认情况下,它通过在选项对象上调用JSON.stringify()
,然后比较生成的字符串来完成此操作 . 通过添加ident
属性,您可以显式指定选项对象的字符串表示形式 . 有关详细信息,请参阅https://stackoverflow.com/a/49006233/52041 .