env:node \ r:没有这样的文件或目录与cordova cli

时间:2013-08-28 16:01:42

标签: macos cordova command-line-interface cordova-3

尝试在OSX上运行cordova cli时出错

env:node \ r \ n:没有这样的文件或目录

我从npm获得了最新版本的cordova所以我认为它是3.0.7

4 个答案:

答案 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

重装存储库