尝试在OSX上运行cordova cli时出错
env:node \ r \ n:没有这样的文件或目录
我从npm获得了最新版本的cordova所以我认为它是3.0.7
答案 0 :(得分:11)
<强>解决方案:强>
$ brew install dos2unix
$ find /usr/local/lib/node_modules -name "*.js" | xargs sudo dos2unix
<强>详细信息:强>
OP的问题与Git有关,但我花了一点时间提及大多数情况下的快速解决方案
如果Node尝试执行具有Windows样式行结尾的.js
文件,则会出现此问题。问题可能来自第三方npm包,其中包含.js
个这类文件。
正如@Leo提到Dos2Unix是答案,以下是我尝试安装Slack-cli时的示例情况的命令链
> npm install -g slack-cli
> slackcli
env: node\r: No such file or directory
修复程序看起来像
> brew install dos2unix
> find /usr/local/lib/node_modules/slack-cli -name "*.js" | xargs sudo dos2unix
> slackcli --help
沃拉..
答案 1 :(得分:5)
问题似乎是cordova处于dos格式
一旦我将其转换为Unix格式,它似乎有效。 我没有得到env:node \ r:没有这样的文件或目录错误。
我使用dos2unix进行更改 https://code.google.com/p/rudix/downloads/detail?name=dos2unix-5.3.3-0.pkg
在我的机器上,cordova文件实际上在usr / local / lib / node_modules / cordova / bin / cordova
答案 2 :(得分:4)
在我的Mac OS X上。
我遇到了同样的问题:我的文件的行结尾改为CRLF(windows)而不是LS(unix)。
这使得Cordova和Node无法使用错误编译项目:
env:node \ r \ n:没有这样的文件或目录
罪魁祸首是GIT,这是在AUTOCRLF上我不知道为什么。 我在终端中运行了以下命令:
import java.io.File;
public class TestFile {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String name="C:/Users/Marathe/x.xml";
File xmll=new File(name);
if(xmll.exists())
{
System.out.println("file found");
}
else
System.out.println("file not found");
}
}
O/P : file found
然后我不得不删除项目并从GIT中重新放回它,它就像一个魅力。
答案 3 :(得分:0)
对我来说问题是在文件中安装了gulp库:
&#39; /node_modules/gulp/bin/gulp.js'
它有&#39; \ r&#39;在&#39;#!/ usr / bin / env node&#39;的最后线。版本:
&#34; github上:gulpjs /吞掉#4.0&#34;
通过设置确定:
git config --global core.autocrlf input
重装存储库