当找到某个扩展名时,有没有办法将RequireJS配置为始终使用特定插件?
我想避免手动调用插件modal-open
我正在寻找某种类型的WebPack配置,但我在文档和网络上都没有好运
require('es6!myModule')
答案 0 :(得分:0)
RequireJS对您提供的支持非常有限。它在“模式匹配”一词的一般意义上没有任何类型的模式匹配功能。特别是,没有办法告诉RequireJS匹配具有特定扩展名的文件。如果您必须坚持使用RequireJS,并且必须获得该插件的模块集是在构建应用程序时已知的固定集,您可以生成如下地图:
map: {
"*": {
foo: "plugin!foo",
bar: "plugin!bar",
// ...
}
}
"*"
实际上不是一个glob或任何一种复杂的模式匹配。它更像是一个编码关键字,意思是“任何模块”。
我有一个用TypeScript编写的应用程序,我必须能够通过RequireJS运行并能够通过Webpack进行处理。我有一些基本上是JSON数据的模块。 TypeScript编译器不喜欢在模块导入中查看插件名称。因此,为了让所有内容顺利运行,我将插件名称保留在TypeScript代码中,并使用上面的map
让RequireJS为需要它的模块使用json
插件。我手动管理地图,因为它只有几个文件。
SystemJS支持加载AMD模块,并且具有比RequireJS更复杂的配置功能。 RequireJS称之为“插件”的内容在SystemJS中称为“加载器”。您可以使用meta
选项将加载程序与文件模式相关联:
{
baseURL: "lib/",
paths: {
// ...
},
meta: {
"something/*.js": {
loader: "some-loader",
}
}
}