我在为翻译服务编写 Webpack 插件时遇到问题。
目标是:
- 在编译期间获取所有必需模块的名称(和源代码)。我需要能够扫描包含的源代码以了解特殊
t()
功能的使用,但我只想扫描那些将包含在包中的模块(根据构建配置,这些模块可以是所有项目模块的子集)。 - 基于收集的模块,我想动态创建其他模块(带有翻译)并将它们添加到包中。这些模块需要能够导入自己的依赖项。
另一个要求是 Webpack 的代码拆分功能应该与动态创建的模块一起使用(我想将它们提取到单独的文件中 - 例如bundle.[lang].js
)。此外,这可能超出了这个问题的范围,我必须将这些带有翻译的块设为可选(因此您不必加载所有语言,而只需加载一种语言)。
更多细节可以在https://github.com/ckeditor/ckeditor5/issues/387中找到。
我一直在尝试多种解决方案,但 Webpack 2 的文档并不是很有帮助。before-resolve
我可以通过监听模块解析钩子addEntry
(我什么时候可以使用它?)。
我也在考虑连接 Webpack 插件和 Webpack 加载器(因为我需要的功能非常类似于Webpack 的 style-loader),但是从插件级别我只能添加加载器的路径,而不是加载器本身,所以我可以' t 将配置对象作为参数传递——我错了吗?
PS。我使用 Webpack 2。如果您觉得这些要求很奇怪,请参阅https://github.com/ckeditor/ckeditor5/issues/387 :)。