5

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

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

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

4

4 回答 4

14

解决方案:

$ brew install dos2unix
$ find /usr/local/lib/node_modules -name "*.js" | xargs sudo dos2unix

细节:

OP 的问题与 Git 有关,但是我花一点时间来提及大多数情况下的快速修复

如果 Node 尝试执行.js具有 windows 样式行结尾的文件,则会出现此问题。.js问题可能来自具有此类文件的第三方 npm 包。

正如@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

瓦拉..

于 2015-06-25T04:08:38.357 回答
5

问题似乎是cordova是dos格式

一旦我将它转换为 Unix 格式,它似乎就可以工作了。我没有得到 env: node\r: No such file or directory 错误。

我使用 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

于 2013-08-28T16:01:42.073 回答
4

在我的 Mac OS X 上。

我刚刚遇到了同样的问题:我的文件的行尾更改为 CRLF(windows) 而不是 LS(unix)。

它使 Cordova 和 Node 无法编译项目并出现以下错误:

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

罪魁祸首是 AUTOCRLF 上的 GIT,我不知道为什么。我在终端中运行了以下命令:

git config --global core.autocrlf input

然后我不得不删除该项目并从 GIT 中重新克隆它,它就像一个魅力。

于 2015-04-26T09:22:54.803 回答
0

对我来说,问题出在文件中安装的 gulp 库中:

'/node_modules/gulp/bin/gulp.js'

它在 '#!/usr/bin/env node' 行的末尾有 '\r'。版本:

“github:gulpjs/gulp#4.0”

它是通过设置修复的:

git config --global core.autocrlf input

并重新加载存储库

于 2017-08-31T12:52:51.533 回答