Команда nodemon не распознается в терминале для сервера node js


86

Я выполняю настройку сервера node.js с https://scotch.io/tutorials/authenticate-a-node-js-api-with-json-web-tokens . Я новичок в node.js. Я устанавливаю npm install nodemon --save. Но когда я запускаю сервер с этим nodemon server.js.
В терминале отображается:

nodemon не распознается как внутренняя или внешняя команда, работающая программа или командный файл

введите описание изображения здесь

node server.jsкоманда работает и сервер запустил, но nodemonкоманда не работает.

Я настроил сервер node js из видео https://scotch.io/tutorials/authenticate-a-node-js-api-with-json-web-tokens .

Я не знаю, почему это не работает. Я попробовал какую-то команду для установки nodemon.

npm install -g nodemon 
npm install -g nodemon --save 
npm install --save-dev nodemon 
npm install -g nodemon@debug 

npm install -g --force nodemon

Я видел одну ссылку, по которой я не могу установить nodemon глобально, "nodemon" не распознан , но я не знаю, как установить путь, потому что мой проект находится на диске D.

Я хочу бежать nodemon server.js. Если у кого-то есть идея, поделитесь. Заранее спасибо.

Ответы:


208

Вам нужно установить его глобально

npm install -g nodemon
# or if using yarn
yarn global add nodemon

И тогда он будет доступен на пути (теперь я вижу, что вы пробовали это, и это не сработало, ваш путь может быть испорчен)

Если вы хотите использовать версию, установленную локально, а не глобально, вы можете создать скрипт в своем package.json.

"scripts": {
    "serve": "nodemon server.js"
  },

а затем используйте

npm run serve

опционально при использовании пряжи

# without adding serve in package.json
yarn run nodemon server.js
# with serve script in package.json
yarn run serve

npm затем будет искать в вашей локальной папке node_modules, прежде чем искать команду в ваших глобальных модулях.


Что не работает? Скрипт с использованием локальной установки?
ndonohoe 01

Яа. Я установил nodemon. Я поместил скрипт в файл package.json. И после запуска npm run serve. В конце концов, запустите nodemon server.js, но не работает.
Martin

package.json: {"scripts": {"serve": "nodemon server.js"}, "name": "node-site", "version": "1.0.0", "description": "", " main ":" server.js "," scripts ": {" test ":" echo \ "Ошибка: не указан тест \" && exit 1 "}," author ":" "," license ":" ISC ", "dependencies": {"express": "^ 4.14.0", "nodemon": "^ 1.11.0"}, "devDependencies": {"gulp-nodemon": "^ 2.2.1", "nodemon": "^ 1.11.0"}}
Мартин

Можете уточнить "не работает"? Есть ошибка? Ничего не происходит?
ndonohoe 01

Это может быть из-за того, что у вас есть два набора скриптов, у вас должны быть все скрипты в одном объекте скриптов
ndonohoe 01

31
  1. Установите nodemon глобально:

    C:\>npm install -g nodemon
    
  2. Получить префикс:

    C:\>npm config get prefix
    

    На консоли вы получите следующий результат:

    C:\Users\Family\.node_modules_global
    

    Скопируйте это.

  3. Установить путь.
    Перейдите в Advanced System Settings → Environment Variable → Click New (Under User Variables) → Будет отображена всплывающая форма → Передайте следующие значения:

    variable name = path,
    variable value = Copy output from your console
    
  4. Теперь запустите Nodemon:

    C:\>nodemon .
    

Это работает!! Это было то, что я искал. Спасибо
yashjain12yj

это сработало для меня. На самом деле у меня есть окна, и мне нужно исправить переменные среды. Спасибо :)
Лавина

21

Сначала напишите npm install --save nodemon, затем в package.json напишите следующее

"scripts": {
    "server": "nodemon server.js"
  },

затем написать

npm run server

Это сработало! Большое спасибо. Просто запрос, nodemon не позволяет нам перезапустить файл сервера, но нам все равно нужно обновить браузер. Может ли браузер обновляться самостоятельно, как в angular?
Рахул Шарма

8

Я столкнулся с той же проблемой. Я установил nodemon как dev-зависимость, и когда я попытался запустить сервер, он дал сообщение, что

nodemon не распознается как внутренняя или внешняя команда, работающая программа или командный файл

Затем я установил его глобально и попытался запустить сервер, и он заработал!

npm install -g nodemon

6

Нужно ли его устанавливать глобально? Вам нужно уметь просто бегать nodemon server.js? Если нет, вы всегда можете просто вызвать его из локального каталога проекта. Должно быть здесь:

node_modules/.bin/nodemon

Это полезно для меня при запуске моего nodejs api из сценария оболочки. Большое спасибо!
Nam G VU,

4

Поскольку префикс узла не указан в переменной PATH ENV, ни один из глобально установленных модулей не распознается. Пожалуйста, попробуйте это. Откройте командную строку командной строки npm config get prefix и добавьте полученный путь к переменной env PATH. Теперь у вас должна быть возможность запускать nodemon из любого места. попробуйте эту ссылку и следуйте по ней. исправление разрешений npm https://docs.npmjs.com/getting-started/fixing-npm-permissions#option-2-change-npms-default-directory-to-another-directory


По твоей ссылке инструкция для linux, у тебя что-нибудь есть для windows?
Хосе Рохас


4

Это может быть поздно, но лучше сказать что-нибудь :)

Если вы не хотите устанавливать nodemon глобально, вы можете использовать npxего, он устанавливает пакет во время выполнения и будет вести себя как глобальный пакет (имейте в виду, что он доступен только в данный момент и не существует глобально!).

Так что все, что вам нужно, это npx nodemon server.js.

  • npxможно использовать "из коробки" от npm@5.2.0версии и выше.

3

Чтобы использовать nodemon, вы должны установить его глобально.

Для Windows

npm я -g nodemon

Для Mac

sudo npm i -g nodemon

Если вы не хотите устанавливать его глобально, вы можете установить его локально в папку проекта, выполнив команду npm i nodemon . При локальном запуске будет выдана примерно такая ошибка:

nodemon: термин 'nodemon' не распознается как имя
командлет, функция, файл сценария или работающая программа. Проверить правописание
имени, или, если был включен путь, убедитесь, что путь
исправьте и попробуйте еще раз.

Чтобы удалить эту ошибку, откройте package.json файл и добавьте

"scripts": {
     "server": "nodemon server.js"
 },

и после этого просто запустите команду

npm запустить сервер

и ваш nodemon начнет работать правильно.


1
Неправильно. Ваш скрипт должен сказать {"server": "nodemon server.js"}
joedotnot

2

Нет необходимости устанавливать nodemon глобально. Просто запустите этот npx nodemon <scriptname.js> . Вот и все.


1

Та же проблема возникла после создания нового профиля пользователя на моей машине разработки.

Проблема заключалась в том, что я не запускал консоль (командная строка \ powershell ISE) как администратор.

Запуск от имени администратора решил для меня эту проблему.


1

Я попытался установить nodemon глобально, но у меня это не сработало. всякий раз, когда я пытаюсь запустить, он всегда показывает мне ошибку:

nodemon : The term 'nodemon' is not recognized as the name of a
cmdlet, function, script file, or operable program. Check the spelling
of the name, or if a path was included, verify that the path is
correct and try again.

2. Я нашел два решения для этого

решение 1:

Я попытался обновить «скрипты» в файле package.json, и там я добавил

"server": "nodemon app.js"

над строкой кода и после этого

npm run server

Солютон 2:

  1. Нажмите клавишу Windows.

  2. Введите «Путь» в поле поиска и выберите «Редактировать системные переменные среды».

  3. Щелкните «Переменные среды» внизу.

  4. В разделе «Системные переменные» дважды щелкните переменную «Путь».

  5. Нажмите "Новый" справа.

  6. Скопируйте и вставьте это в поле (замените [Имя пользователя]):

C: \ Users [Имя пользователя] \ AppData \ Roaming \ npm

  1. перезапустите свой терминал и VSCode.

  2. Затем введите, nodemon app.jsчтобы запустить nodemon

Я применил решение 2, так как нам просто нужно запустить nodemon [filename.js]


0

Вы можете запустить приложение узла, просто набрав nodemon It First run index.js. Вы можете легко поместить точку входа в этот файл.

Если вы не установили nodemon, вам сначала нужно установить его с помощью

npm install -g nodemon

Если у вас возникла ошибка разрешения, используйте

sudo npm install -g nodemon

Вы можете проверить, существует ли nodemon, с помощью

nodemon -v

0

Выполните эту команду:

npm install nodemon -g

Теперь он установит nodemon, но проблема с моим случаем заключается в том, что он устанавливает nodemon где-то еще. Я добавил путь Nodejs из (ProgramFiles (x86)), но это не сработало, поэтому я нашел другое решение.

  • Выполнить команду выше
  • Во время установки будет показан путь, по которому установлен nodemon, затем [Пожалуйста, перейдите по ссылке ниже, чтобы увидеть путь] [1]

    [1]: https://i.stack.imgur.com/ld2sU.png

  • Скопируйте путь до npm и установите его в переменную среды
  • Теперь попробуйте следующую команду, надеюсь, она запустится

      nodemon YourAppName.js

0

Все вышеперечисленные варианты не работают, у меня есть постоянное решение для этого. Добавьте строку ниже в package.json в разделах dependencies и run npm install. Это добавит пакет nodemon в node_modules, и вот так, наслаждайтесь кодированием.

"nodemon": "^1.17.*"

3
Добро пожаловать в Stack Overflow. Отвечая на старый вопрос с помощью существующих ответов, полезно объяснить, какую новую информацию приносит ваш ответ. Этот ответ, похоже, не показывает глобальную установку, он ссылается на конкретную версию (поэтому она не устареет) и не отвечает на заданный вопрос, поскольку не показывает, как включить команда.
Джейсон Аллер


0

Политика выполнения командлета Set-ExecutionPolicy по умолчанию - Restricted for Windows. Вы можете попробовать установить nodemon, установив для этой политики значение Unrestricted.

выполнить команду: Set-ExecutionPolicy Unrestricted а затем попробуйте установить nodemon и выполните команду:nodemon -v


0

Я исправил таким образом

  1. удалить существующий локальный nodemon

    npm удалить nodemon

  2. установите его снова глобально.

    npm я -g nodemon


-2

Удалите nodemon, потому что это зависимость разработчика, и используйте вместо него node.

"scripts": {
     "start": "node server.js"
 },

Это сработало для меня.


Не отвечает на вопрос. node и nodemon имеют разные цели.
joedotnot

это другое дело. Для nodemon это должно быть «server»: «nodemon app.js»
Шубхам Кумар
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.