Как использовать модули узла из командной строки?

#node.js #npm #node-modules

#node.js #npm #узлы-модули

Вопрос:

Я не могу найти никаких прямых инструкций по этому поводу. Я установил node.js и npm, затем создал проект в своей собственной папке D:node_stuff , затем подключился к нему через cd cmd (Windows 10) и запустил npm install express , npm init . Я пытаюсь использовать gifify и установил его зависимости через npm вместо brew (ffmpeg, imagemagick, giflossy).

  • gifify -h -> ‘gifify’ не распознается как внутренняя или внешняя команда, действующая программа или пакетный файл.
  • node gifify -h -> Ошибка: не удается найти модуль ‘D:node_stuffgifify ‘
  • cd node_modules -> node gifify -h -> ничего не происходит

Что я делаю не так? Где мне вообще смотреть — все учебные пособия с простым поиском показывают только, как устанавливать пакеты или создавать проект — мне не нужно ничего создавать, только использовать этот один модуль.

Комментарии:

1. На Mac / Linux, поскольку вы установили пакет локально, а не глобально, вы обычно используете npx его для запуска, например npx gifify -h . Не уверен, что это доступно в Windows, но, пожалуйста, попробуйте.

2. @jarmod Хорошо, это сработало — я посмотрю, работает ли остальная функциональность, тогда вы можете опубликовать ее в качестве ответа. Странно, что в нескольких статьях об этом не упоминалось.

3. чтобы добавить его в path, нужно будет сделать npm i gifify -g , его в readme

Ответ №1:

Вы можете запустить npx gifify -h .

Как правило, у вас есть два варианта при установке пакетов NPM:

  1. установить глобально, например npm install gifify -g
  2. установите локально, например npm install gifify (или npm install если пакет указан в package.json)

Некоторые пакеты при установке также устанавливают скрипт командной строки. Для глобально установленных пакетов этот сценарий CLI устанавливается в папку, которая находится на вашем пути, и, следовательно, вы можете просто запустить голую команду, например gifify -h . Для локально установленных пакетов этот сценарий CLI устанавливается локально в node_modules папке, которой нет на вашем ПУТИ. Для запуска такого скрипта вы можете использовать, например, NPM package executor npx npx gifify -h . Это, по сути, выполняет локальный скрипт из node_modules/.bin папки.

Если ваш пакетный скрипт, например gifify , использует сторонние исполняемые файлы, такие как FFMPEG и ImageMagick, я бы установил их как обычные приложения (которые поместят их на ваш ПУТЬ).

Комментарии:

1. Столкнулся с другими проблемами, но, вероятно, и с другими пользователями: некоторые пакеты не могут быть «найдены» узлом используемым модулем. Например, npx gifify clip.mp4 -o clip.gif -. «Не удалось найти ffmpeg. Он установлен?» Да, через npm install ffmpeg , как локально, так и глобально ( -g ) . Решение было choco install ffmpeg . Теперь еще одна проблема: «Не удалось найти convert. Он установлен?» choco на этот раз не сработало, и не сработало npm ; какие-либо другие «трюки»?

2. Я бы предположил, что gifify выполняет ffmpeg / convert, и поскольку они не находятся на вашем ПУТИ, они не могут их выполнить. Пакет gifify и другие не эмулируют поведение npx. Вы могли бы просто дополнить переменную среды PATH «node_modules .bin», а затем выполнить gifify -h или npx gifiy -h (при условии, что ffmpeg находится в node_modules .bin). Что касается меня лично, я бы, вероятно, установил FFMPEG и ImageMagick глобально как автономные исполняемые файлы, а не через NPM, и они были бы добавлены в мой PATH. Кроме того, обратите внимание, что существует собственная программа преобразования Windows, которая является утилитой NTFS.

3. gifify теперь запускается после перезапуска cmd, но node_modules/convert все еще не найден; есть ли флаг «запуск с отладочной информацией»? «Не найдено» мне мало что говорит

4. Считаю, что convert является частью ImageMagick.

5. Да, установка ImageMagick отсюда сработала, и, наконец, я получаю сообщение об ошибке из самой программы, но не тема этого Q amp; A. Спасибо за помощь.