env: node\r: нет такого файла или каталога с Cordova cli

При попытке запустить Cordova cli на OSX возникает ошибка

env: node\r: нет такого файла или каталога

Я получил последнюю версию Cordova от npm, поэтому я думаю, что это 3.0.7.


person Leo    schedule 28.08.2013    source источник


Ответы (4)


Решение:

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

Подробности:

Проблема для OP была связана с Git, однако я воспользуюсь моментом, чтобы упомянуть быстрое исправление для большинства его случаев.

Проблема появится, если Node попытается выполнить файл .js, который имеет окончание строки в стиле Windows. Проблема может возникнуть из-за сторонних пакетов 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

Валла..

person nehem    schedule 25.06.2015

Проблема в том, что кордова в формате 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.

person Leo    schedule 28.08.2013
comment
Я думаю, что они исправили эту ошибку, поэтому, если вы установите последнюю версию, все должно быть в порядке. - person Leo; 20.09.2013
comment
Спасибо. Моя проблема была из GIT, но ваш ответ помог понять, что это произошло из-за неудачного окончания строки. Я добавил свое решение ниже. - person Yahel; 26.04.2015

На моем Mac OS X.

Я только что столкнулся с той же проблемой: в моих файлах были изменены окончания строк на CRLF (windows) вместо LS (unix).

Из-за этого Cordova и Node не смогли скомпилировать проект с ошибкой:

env: node\r: нет такого файла или каталога

Виновником был GIT, который был на AUTOCRLF, я не знаю почему. Я выполнил следующую команду в терминале:

git config --global core.autocrlf input

Затем мне пришлось удалить проект и повторно клонировать его из GIT, и это сработало как шарм.

person Yahel    schedule 26.04.2015
comment
Нашел, что это самое простое/самое глобальное решение. Запустил эту команду конфигурации, повторно клонировал проект, все заработало. - person stephennmcdonald; 04.01.2017

Для меня проблема в установленной библиотеке gulp в файле:

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

Он имеет '\ r' в конце строки '#!/usr/bin/env node'. Версия:

"github:gulpjs/gulp#4.0"

Это было исправлено установкой:

git config --global core.autocrlf input

И перезагружаем репозиторий

person Yuri G.    schedule 31.08.2017