Я разрабатываю приложение cli для узла, используя PyCharm из Windows, и работает только в Windows, но всегда возвращает : No such file or directory
при запуске из Linux. Я смог воспроизвести проблему, используя довольно простой пример в качестве теста. Попробуйте установить каждую версию и обратите внимание на то, как один из опубликованных из Windows не запускается в Linux или OSX.Node bin файл не распознается в linux или osx
Опубликовано в Windows: npm -g install [email protected] && cli-test
Опубликовано в Linux: npm -g install [email protected] && cli-test
package.json:
{
"name": "cli-test",
"version": "0.0.1",
"bin": {
"cli-test": "./cli.js"
}
}
cli.js
#!/usr/bin/env node
console.log('hello world!');
Если я напишу этот код, а затем его установлю с помощью sudo npm -g install
из каталога проекта в Linux, тогда запустите cli-test
, он выдает ошибку, упомянутую выше. Если я сделаю то же самое из окон, он будет правильно управлять журналами.
я могу заставить его работать на Linux, используя следующие шаги:
- Откройте каталог проекта на Linux
- Переименовать
cli.js
вcli.old.js
- Создать новый файл с именем
cli.js
- Copy содержимое старого файла в новый файл
Почему он не запускается в Linux, когда я публикую в npm из Windows без ручного воссоздания файла из Linux?
Спасибо за указание на этот вопрос, я бы никогда не наткнулся на него самостоятельно. Очень неприятно разбираться и отслеживать проблему в противном случае. – Josh
Оказывается, я могу настроить весь проект на использование разделителей линии LF, и я изменил значение по умолчанию в пределах pycharm. – Josh
Я также разрабатываю Windows и сталкиваюсь с той же проблемой при установке в Linux: нет такого файла или каталога при запуске файла bin. Этот пост спасает меня от кучи после безумного поиска ответа на 3 дня в сети! Npm следует упомянуть в своих документах: предупреждение при запуске npm publish из Windows – Green