Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript RequireJS-按目录(或正则表达式)排除_Javascript_Requirejs_R.js - Fatal编程技术网

Javascript RequireJS-按目录(或正则表达式)排除

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的

这是我为requireJS的优化器r.js构建配置的一部分

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