为什么requirejs优化器需要在我的源文件上写入权限? 这可以解决吗?

我正在优化一个我们已经开始转换为AMD语法的项目,而且我遇到了一些问题。

我们的版本控制工具Clearcase在文件系统未检出时将文件保留为只读文件。 当我试图使用node r.js来优化项目时,我发现这导致了问题。 具体来说,它似乎试图获得我已经定义为模块的文件的写入权限,以便在我的构build文件中进行优化。

我的构build文件看起来像这样:

 { baseUrl: "../", mainConfigFile: "./config.js", appDir: ".../../build/", dir: "../", modules: [{ name:"file1" }] } 

当我离开file1.js签入时,我看到一个错误消息

 Error: EACCES permission denied '.../file1.js' at Object.fs.openSync (fs.js:427:18) 

当我检查出来,并获得写权限,它没有任何问题。 我已经testing了这一点,它一直似乎需要写权限才能工作。

我不明白这一点,因为这些文件不应该被写入,他们只需要阅读。 有没有解决方法? 我做错了什么?

我也很好奇,如果有这个限制的原因(如果不是简单的我的错误),或者只是被忽略的东西,这对大多数人来说都不是问题。 我一直无法find其他有这个问题的人,所以我可能处于一个相对独特的情况(可以肯定的是,使用clearcase和Node.js的人可能不是很大的重叠)

如果不解决node.js方面的问题,你可以尝试看看如果你使这些文件被劫持,会发生什么事情。

假定您正在使用ClearCase快照视图,您可以在其中控制写入属性。
但是,你甚至可以用dynamic视图来做到这一点 。

Interesting Posts