Hello evryone,
我试图找到一种方法让 r.js 不要复制我的 / lib / 目录中的所有文件,除了(例如) ) jquery.js 和 require.js 。
我使用 fileExclusionRegExp 选项排除除上述内容之外的所有* .js文件。
fileExclusionRegExp: '\/lib\/(?!jquery|require).*\.js'
但是在优化之后,我仍然可以看到其他文件也被复制了。
我有什么不对的吗?或者正则表达式是不正确的?
提前致谢
答案 0 :(得分:1)
您遇到的问题是您尝试使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的作者所建议的那样。