Я более осторожен, чем обычно, потому что меня смущало поведение npm
в прошлом.
Я на Mac и установил node.js через brew install node
.
Теперь, когда я хочу запустить jslint.js
в командной строке в качестве команды jslint
я обнаружил, что канонический способ сделать это - sudo npm install -g jslint
который успешно работал с этими выходными sudo npm install -g jslint
:
$ sudo npm install -g jslint
npm http GET https://registry.npmjs.org/jslint
npm http 200 https://registry.npmjs.org/jslint
npm http GET https://registry.npmjs.org/jslint/-/jslint-0.1.9.tgz
npm http 200 https://registry.npmjs.org/jslint/-/jslint-0.1.9.tgz
npm http GET https://registry.npmjs.org/nopt
npm http 200 https://registry.npmjs.org/nopt
npm http GET https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz
npm http 200 https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz
npm http GET https://registry.npmjs.org/abbrev
npm http 200 https://registry.npmjs.org/abbrev
npm http GET https://registry.npmjs.org/abbrev/-/abbrev-l.0.4.tgz
npm http 200 https://registry.npmjs.org/abbrev/-/abbrev-1.0.4.tgz
/usr/local/share/npm/bin/jslint -> /usr/local/share/npm/lib/node_modules/jslint/
bin/jslint.js
[email protected] /usr/local/share/npm/lib/node_modules/jslint
└── [email protected] ([email protected])
впоследствии
$ jslint ply.js
zsh: command not found: jslint
из-за того, что /usr/local/share/npm/bin
не находится в моем $PATH
.
1) Почему brew
не установил глобальный путь к npm
bin
? Может быть, это так, но что - то zsh
делает Мессинг его. Где я могу найти это?
2) Должен ли я сделать это? (Добавьте : /usr/local/share/npm/bin
к экспортированному $PATH
внизу моего ~/.zshrc
)
Кажется, что это неправильный способ сделать это, потому что, если я установлю что-то еще позже (используя Homebrew или что-то еще), мне нужно будет добавить его в мой скрипт запуска zsh, чтобы указать путь. Я предполагаю, что в данном конкретном случае это просто вопрос npm install -g
не npm install -g
правильные символические ссылки в "правильном" месте (например, /usr/local/bin
).
Я думаю, что я сделаю вручную создание символических ссылок внутри /usr/local/bin
для любых программ, с которыми у меня возникли проблемы, и это должно быть достаточно для моих целей.
РЕДАКТИРОВАТЬ: я обновляю это в 2019 году, потому что этот старый вопрос популярен, но теперь устарел как с точки зрения моего личного рабочего процесса, а также с точки зрения того, как лучше всего установить узел и управлять его различными зависимостями.
Мой личный рабочий процесс теперь заключается в использовании установщика, полученного из nodejs.org, для установки узла в системах. Я на самом деле доверяю этому больше, чем самому пакету homebrew, потому что он лучше знает, как управлять файлами. Если вы хотите изменить системный узел с 8.10 на 10.15, будь то на Mac или Windows, просто загрузите установщик с nodejs.org для 10.15 для вашей ОС. По моему опыту, попытка обновить узел, установленный с помощью homebrew, всегда была более сложным подходом.
Кроме того, самое важное, на что следует обратить внимание, это то, что использование sudo, как показано в моем примере установки jslint для npm выше, крайне не рекомендуется; Я совершенно уверен, что пакеты homebrew никогда не должны устанавливаться или взаимодействовать с суперпользователем. Это не должно быть необходимым, и приведет к головным болям разрешения файла!
Кроме того, я рекомендую ESLint поверх jslint и не использовал jslint в течение многих лет.