Команда TNS не найдена после установки NativeScript - PullRequest
0 голосов
/ 09 июля 2020

Я обновил NPM и Node перед установкой NativeScript, я мог бы добавить без ошибок, но когда я пытаюсь создать новый проект, используя tns create MyProjectName, я получаю сообщение об ошибке tns command not found.

После долгого читая, у меня возникает ощущение, что это как-то связано с моим PATH.

Это то, что выводится в терминале во время установки NativeScript относительно TNS:

sudo npm install -g nativescript --unsafe-perm

/Users/martingeldart/.npm-global/bin/tns -> /Users/martingeldart/.npm-global/lib/node_modules/nativescript/bin/tns
/Users/martingeldart/.npm-global/bin/nativescript -> /Users/martingeldart/.npm-global/lib/node_modules/nativescript/bin/tns
...

Если я запустите echo $PATH, вот что выдает:

echo $PATH

/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/usr/local/bin/lib/node_modules/nativescript/bin

Это выглядит действительно странно для меня, но я ни в коем случае не эксперт по командной строке. На самом деле, я невероятно неопытен во всей системе командной строки.

Почему я не могу получить доступ к команде tns? Что происходит с этим ПУТЬом, который я повторил?

MacOSX

1 Ответ

0 голосов
/ 09 июля 2020

Между версиями npm местоположение глобального пакета перемещено в ОС. Поскольку установка переместилась, терминал не знает, где найти команду. Переменная PATH используется, чтобы сообщить терминалу, где может находиться вся команда. В данном случае это кажется стандартом. Теперь лучший способ получить доступ к команде из установленного пакета - использовать npx, который по умолчанию включен в новую установку npm.

https://docs.npmjs.com/downloading-and-installing-packages-globally

npx tns
# In your case
npx tns create MyProjectName

Есть 2 других способа решить эту проблему.

  1. Либо ваша глобальная папка пакета настроена неправильно. https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally

  2. Добавьте папку bin, в которую был установлен nativescript, на ваш путь вручную (обычно в .bash_profile), откройте новый терминал.

Я использую nativescript для различных проектов, и у меня есть предложение по управлению пакетами. Обычно я избегаю установки глобального пакета, потому что в случае нескольких проектов может возникнуть конфликт между версиями, если одни проекты обновлены, а другие нет.

Я обычно создаю папку с версией, которую устанавливаю. Go в папку, npm инициализировать и установить пакет локально.

mkdir nativescript-project-6-0
cd nativescript-project-6-0
npm init
npm i --save nativescript

Теперь у меня есть исправленная версия для работы, и я могу создать другой проект с той же версией, даже если у меня есть другой проект с более новой версией инструмента или библиотеки. Теперь в nativescript-project-6-0 я создаю свой проект.

npx tns create MyProjectName

Это должно создать папку nativescript-project-6-0/MyProjectName. Все готово и готово к go. Помните, что в этом случае всегда рекомендуется использовать npx, поскольку мы хотим использовать локальный пакет.

...