我正在尝试使用r.js优化项目,源代码保存在subversion中。我收到以下错误:
> node r.js -o generic-profile.js
> Error: Error: EPERM, operation not permitted 'C:\xxx\GUI\generic\.svn\entries'
at Object.fs.unlinkSync (fs.js:760:18)
我认为问题是r.js正在尝试将.svn目录从源文件夹复制到构建文件夹。
有没有办法在运行r.js时排除.svn目录?例如,我可以在构建配置文件中添加一些内容吗?
以下是我的构建配置文件目前的样子:
({
"appDir": "../src/generic/",
"baseUrl": ".",
"dir": "../generic/",
"include": ["../vendor/require",
"../vendor/text",
"../vendor/i18n"],
"optimize": "uglify2",
"modules": [
{
name: "app"
}
],
"mainConfigFile": "generic-config.js"
})
自从阅读Louis的优秀答案以来,很明显这不是颠覆问题,而是配置不当的构建配置文件。我已经做了一些关于如何设置构建配置文件的进一步阅读,this example帮助了很多。
如果您遇到类似的问题,这可能会有所帮助。
答案 0 :(得分:3)
默认情况下,r.js
已从处理以句点开头的目录中排除。设置为fileExclusionRegExp
,默认值为/^\./
,因此将跳过.svn
。 (查看r.js
的代码,我看到fileExclusionRegExp
与每个文件的基名匹配。)
您看到的错误与您的输入目录一致,与输出一致。您没有将keepBuildDir
设置为true
,因此您的输出目录将被删除。将您的dir
更改为在其他地方构建。
或者您将输出保持在版本控制之下。将keepBuildDir
设置为true
可以解决当前的问题,但如果您对r.js
的输出执行转换,可能会产生更多问题。