Javascript 为什么requirejs优化器需要对我的源文件具有写权限?这能解决吗?
我正在优化一个项目,我们已经开始转换为AMD语法,我遇到了一些问题 我们的版本控制工具Clearcase在未签出文件时将文件作为只读文件保留在文件系统中。当我尝试使用Javascript 为什么requirejs优化器需要对我的源文件具有写权限?这能解决吗?,javascript,node.js,requirejs,clearcase,r.js,Javascript,Node.js,Requirejs,Clearcase,R.js,我正在优化一个项目,我们已经开始转换为AMD语法,我遇到了一些问题 我们的版本控制工具Clearcase在未签出文件时将文件作为只读文件保留在文件系统中。当我尝试使用node r.js优化项目时,我发现这导致了问题。具体来说,它似乎试图获得对我定义为模块的文件的写访问权,以便在构建文件中进行优化 我的生成文件如下所示: { baseUrl: "../", mainConfigFile: "./config.js", appDir: ".../../build/", dir
node r.js
优化项目时,我发现这导致了问题。具体来说,它似乎试图获得对我定义为模块的文件的写访问权,以便在构建文件中进行优化
我的生成文件如下所示:
{
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)
当我签出它并获得写权限时,它可以正常工作。我已经对此进行了测试,它似乎始终需要写权限才能工作
我不明白这一点,因为这些文件根本不应该被写入,它们只需要被读取。有解决办法吗?我做错什么了吗
我也很好奇,这种限制是否有原因(如果这不是我的错误),或者它只是被忽视了,对大多数人来说不是问题。我一直找不到其他有此问题的人,因此我可能处于一个相对独特的情况(无可否认,使用clearcase和Node.js的人可能没有太多重叠)如果不解决Node.js方面的问题,您可以尝试看看如果创建这些文件会发生什么 假设您使用的是ClearCase快照视图,您可以在其中控制写入属性。
但是你甚至可以。你能将传递给
r.js
的实际构建文件剪切粘贴到你的问题中吗?您当前拥有的文件在语法上不正确。@Louis DominiqueDubeau这基本上是同一个文件。我刚换了名字。显然,我不小心删除了逗号。无论如何,构建文件并不是真正的问题。如果对文件有写权限,它就可以正常工作。我刚刚将我的50个模块应用程序的模块设置为只读,运行了r.js
,但没有出现错误。因此,问题不在于r.js
或输入文件的权限(即r.js
没有试图打开其输入文件进行写入),而在于您为r.js
提供的构建配置。如果没有你正在使用的真正路径,我就不可能找出问题所在。