r.js - 排除特定文件列表
r.js - excluding specific list of files
大家好,
我正在尝试找到一种方法让 r.js 不从我的 /lib/[=30 复制所有文件=] 目录,除了(例如)jquery.js 和 require.js.
我正在使用 fileExclusionRegExp 选项来排除除上述文件之外的所有 *.js 文件。
fileExclusionRegExp: '\/lib\/(?!jquery|require).*\.js'
但是优化之后,还是能看到其他文件也被复制过来了。
我做错了什么吗?或者正则表达式不正确?
提前致谢
您 运行 遇到的问题是您试图使 fileExclusionRegExp
匹配文件的整个路径,但 r.js
仅将其用于测试基础文件名。您可以从选项的描述及其默认值中推断出这一点。 description 表示:
//When the optimizer copies files from the source location to the
//destination directory, it will skip directories and files that start
//with a ".".
默认值为:
/^\./
如果要针对完整路径进行测试,它将无法排除子目录中以句点开头的文件。我们还在 this issue report.
中找到了对这种行为的确认
如果您只有一个名为 require.js
的文件和一个名为 jquery.js
的文件,那么您可以使用此正则表达式:
fileExclusionRegExp: /^(?!jquery|require).*\.js$/
否则,fileExclusionRegExp
不会这样做,您应该使用构建步骤来清理您的目录,正如 RequireJS 的作者在我上面提到的问题报告中所建议的那样。
大家好,
我正在尝试找到一种方法让 r.js 不从我的 /lib/[=30 复制所有文件=] 目录,除了(例如)jquery.js 和 require.js.
我正在使用 fileExclusionRegExp 选项来排除除上述文件之外的所有 *.js 文件。
fileExclusionRegExp: '\/lib\/(?!jquery|require).*\.js'
但是优化之后,还是能看到其他文件也被复制过来了。
我做错了什么吗?或者正则表达式不正确?
提前致谢
您 运行 遇到的问题是您试图使 fileExclusionRegExp
匹配文件的整个路径,但 r.js
仅将其用于测试基础文件名。您可以从选项的描述及其默认值中推断出这一点。 description 表示:
//When the optimizer copies files from the source location to the
//destination directory, it will skip directories and files that start
//with a ".".
默认值为:
/^\./
如果要针对完整路径进行测试,它将无法排除子目录中以句点开头的文件。我们还在 this issue report.
中找到了对这种行为的确认如果您只有一个名为 require.js
的文件和一个名为 jquery.js
的文件,那么您可以使用此正则表达式:
fileExclusionRegExp: /^(?!jquery|require).*\.js$/
否则,fileExclusionRegExp
不会这样做,您应该使用构建步骤来清理您的目录,正如 RequireJS 的作者在我上面提到的问题报告中所建议的那样。