当尝试在OSX上运行cordova cli时,得到一个错误
env:node\r:没有这样的文件或目录
我从npm得到了最新版本的cordova,所以我认为它是3.0.7
解决方案:
$ brew install dos2unix
$ find /usr/local/lib/node_modules -name "*.js" | xargs sudo dos2unix
详细信息:
OP的问题是与Git有关,然而我花了一点时间来提到它的大多数情况的快速解决方案
如果Node尝试执行具有windows样式行结尾的.js
文件,问题就会出现。问题可能来自具有此类.js
文件的第三方npm包。
正如@Leo提到的Dos2Unix就是答案,以下是我尝试安装Slack cli 时的一个示例情况的命令链
> npm install -g slack-cli
> slackcli
env: noder: No such file or directory
修复看起来像
> brew install dos2unix
> find /usr/local/lib/node_modules/slack-cli -name "*.js" | xargs sudo dos2unix
> slackcli --help
瓦拉。。
问题似乎是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/codova/bin/cordova
在我的Mac OS X上。
我刚刚遇到了同样的问题:我的文件的行尾改为CRLF(windows)而不是LS(unix)。
这使得Cordova和Node无法编译项目,并出现错误:
env:node\r:没有这样的文件或目录
罪魁祸首是AUTOCRLF上的GIT,我不知道为什么。我在终端中运行了以下命令:
git config --global core.autocrlf input
然后我不得不删除这个项目,并从GIT中重新获得它,它就像一个魅力。
对我来说,问题是在文件中安装的gump库中
'/nod_modules/gulp/bin/gulp.js'
它在'#/"usr/bin/env node"行。版本:
"github:gulljs/gulp#4.0"
它是通过设置修复的:
git config --global core.autocrlf input
以及重新加载存储库
在我的案例中,解决方案是使用sudo(ubuntu 20.04)运行cordova