Javascript RequireJS-按目录(或正则表达式)排除
这是我为requireJS的优化器r.js构建配置的一部分Javascript RequireJS-按目录(或正则表达式)排除,javascript,requirejs,r.js,Javascript,Requirejs,R.js,这是我为requireJS的优化器r.js构建配置的一部分 exclude: [ 'widgets/cr-log-display', 'widgets/cr-pager', 'widgets/cr-time-input' 我的问题很简单:是否可以排除以widgets/开头的所有依赖项 这些文档似乎没有表明可以在这里传递正则表达式或任何类似的东西。是否还有我缺少的另一个配置参数 我很确定您不能将正则表达式传递给排除。我是在阅读了r.js的源代码后这样说的。exclude的
exclude: [
'widgets/cr-log-display',
'widgets/cr-pager',
'widgets/cr-time-input'
我的问题很简单:是否可以排除以widgets/
开头的所有依赖项
这些文档似乎没有表明可以在这里传递正则表达式或任何类似的东西。是否还有我缺少的另一个配置参数 我很确定您不能将正则表达式传递给
排除
。我是在阅读了r.js
的源代码后这样说的。exclude
的处理使用名为findBuildModule
的内部函数,该函数将传递给exclude
的内容与=
的模块名称进行比较。同样,也无法告诉r.js
“排除此目录下的所有模块”
我看到您可能可以使用的一种方法是onBuildWrite
,这是一种使用函数的全局设置。我将其用于其他目的,而不是您想要的目的,但这可能会起到作用:
onBuildWrite: function (moduleName, path, contents) {
return /^widgets\//.test(moduleName) ? "" : contents;
}
如果模块名称以widgets/
开头,则将写入捆绑包的内容将是空字符串,否则内容将是模块内容的任意内容
请注意,这与exclude
的功能不完全相同。exclude
设置排除列出的模块及其依赖项。上面的onBuildWrite
示例类似于excludeshalf
,因为匹配正则表达式的模块将被排除,但它们的依赖项不会被排除。没有办法轻松编写一个onBuildWrite
函数,将排除扩展到要排除的模块的依赖项r.js
不提供查询模块依赖关系的API