Я создал javascript файл mytool.js
, он имеет некоторые зависимости (в package.json).
Теперь я могу выполнить ввод в
~/mynodes/mytool $ node mytool
Но если я изменю рабочий каталог, я больше не могу использовать эту команду, потому что раньше он запускался локально. То, что я хочу достичь, - это просто ввести:
~$ mytool
(где бы я ни находился в моей системной файловой системе и без ввода node
раньше).
Должен ли я установить его вручную?
Если да, где общее место для установки персонального скрипта nodejs в unix-подобной системе?
Или существует ли команда npm для установки персональной скриптовой системы?
Когда вы добавляете ключ "bin" в свой пакет package.json:
"bin": {
"mytool": "mytool.js"
},
то вы сможете установить свой скрипт с помощью npm install -g
и он будет автоматически добавлен туда, где он должен быть (в место, где установлены другие глобально установленные инструменты cli, которые должны быть в вашем PATH).
Вы можете увидеть этот простой проект в качестве примера:
Он был создан в качестве примера для этого ответа, но он делает то, что вам нужно:
Обратите внимание, что вам не нужно публиковать свой скрипт на npm, чтобы его можно было установить, хотя вы можете это сделать, или вы также можете устанавливать проекты непосредственно из GitHub (включая частные репозитории), но вы также можете установить модуль, который вы в вашем локальном каталоге или в tarball:
npm install -g module-on-npm
npm install -g user/repo-on-github
npm install -g /your/local/directory
npm install -g /your/local/tarball.tgz
Дополнительные сведения см. В следующих разделах:
Также имейте в виду, что для того, чтобы ваша программа могла быть выполнена из любого места, вам нужно использовать пути относительно __dirname
или __filename
если вам нужно получить доступ к своим собственным файлам относительно вашего кода. Увидеть:
Первый вариант:
Вы можете запустить свой файл глобально, поместив первую строку файла: #!/usr/bin/env node
, скопировав его в /usr/local/bin
и сделав его исполняемым: sudo chmod +x/usr/local/bin/yourfile.js
а затем вы можете вызвать его из того места, где хотите, с помощью yourfile.js
Второй вариант:
Сделайте свой локальный файл исполняемым и создайте исполняемый скрипт bash, который вызывает ваш локальный файл, и поместите его в /usr/local/bin
а затем вызовите bashfile по всему миру.
#!/usr/bin/env node
).$PATH
chmod +x/usr/local/bin/example.js
)