Команда 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команда не працює.

Я налаштовую 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. Якщо хтось має ідею, будь ласка, поділіться. Заздалегідь спасибі.

Відповіді:


207

Вам потрібно встановити його глобально

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

Яа. Я встановив nodemon. Я помістив скрипт у файл package.json. А після запуску npm run подають. Зрештою, тоді запустіть nodemon server.js, але не працює.
Мартін

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 ", "залежності": {"express": "^ 4.14.0", "nodemon": "^ 1.11.0"}, "devDependencies": {"gulp-nodemon": "^ 2.2.1", "nodemon": "^ 1.11.0"}}
Мартін,

Ви можете пояснити "не працює"? Чи є помилка? Нічого не трапляється?
ndonohoe

Це може бути тому, що у вас є два набори сценаріїв, ви повинні мати всі сценарії в одному об’єкті сценаріїв
ndonohoe

31
  1. Встановіть nodemon глобально:

    C:\>npm install -g nodemon
    
  2. Отримати префікс:

    C:\>npm config get prefix
    

    Ви отримаєте результат, як показано нижче у вашій консолі:

    C:\Users\Family\.node_modules_global
    

    Скопіюйте його.

  3. Встановити шлях.
    Перейдіть до Розширені системні налаштування → Змінна середовища → Клацніть Створити (у розділі Змінні користувача) → Відобразиться спливаюча форма → Передайте наступні значення:

    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 як залежність від розробника, і коли я спробував запустити сервер, він видав це повідомлення

nodemon не розпізнається як внутрішня чи зовнішня команда, операційна програма чи командний файл

Потім я встановив його глобально і спробував запустити сервер, і це спрацювало!

npm install -g nodemon

6

Чи потрібно його встановлювати глобально? Вам потрібно вміти просто бігати nodemon server.js? Якщо ні, ви завжди можете просто зателефонувати йому з вашого локального каталогу проекту. Має бути тут:

node_modules/.bin/nodemon

Це корисно для мене, щоб запустити nodejs api зі сценарію оболонки. Щиро дякую!
Nam G VU

4

Оскільки префікс вузла відсутній у змінній PATH ENV, жоден із глобально встановлених модулів не розпізнається. Будь ласка, спробуйте це. Відкрийте підказку cmd 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

Цей рядок вирішив мою проблему в CMD:

npm install --save-dev nodemon

3
Глобальна установка nodemon у мене не спрацювала, але ця з мене :)
codemirror

4

Це може пізніше, але краще сказати щось щось :)

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

Тож усе, що вам потрібно - це npx nodemon server.js.

  • npxможна використовувати нестандартно від npm@5.2.0версії та вище.

3

Щоб використовувати nodemon, ви повинні встановити його глобально.

Для Windows

npm i -g nodemon

Для Mac

sudo npm i -g nodemon

Якщо ви не хочете встановлювати його глобально, ви можете встановити його локально в папці проекту, запустивши команду npm i nodemon . Це видасть помилку приблизно так, якщо запустити локально:

nodemon: термін "nodemon" не розпізнається як назва a
командлет, функція, файл скрипта або операційна програма. Перевірте правопис
імені, або якщо шлях був включений, переконайтеся, що шлях є
виправте і спробуйте ще раз.

Щоб видалити цю помилку, відкрийте package.json файл і додайте

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

а після цього просто запустіть команду

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

і ваш нодемон почне працювати належним чином.


1
Неправильно. У вашому скрипті має бути {{server ":" nodemon server.js "}
joedotnot

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]


1

Не потрібно встановлювати глобально nodemon. Просто запустіть цей nodx nodemon <scriptname.js> . Це воно.


0

Ви можете запустити програму вузла, просто ввівши текст nodemon її Спочатку запустіть 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 під залежностями та run npm install. Це додасть пакет nodemon до node_modules, і ось ви насолоджуєтесь кодуванням.

"nodemon": "^1.17.*"

3
Ласкаво просимо до Stack Overflow. Відповідаючи на старіші запитання наявними відповідями, корисно пояснити, яку нову інформацію приносить ваша відповідь. Здається, ця відповідь не відображає глобальну установку, вона посилається на певну версію (тому вона погано старіє) і не відповідає на запитання, яке було задано в тому, що не показує, як увімкнути команди.
Джейсон Аллер,


0

Політика виконання командлета Set-ExecutionPolicy за замовчуванням обмежена для Windows. Ви можете спробувати встановити nodemon, встановивши для цієї політики Необмежений.

виконати команду: Set-ExecutionPolicy Unrestricted а потім спробувати встановити nodemon і виконати команду:nodemon -v


0

Я виправив таким чином

  1. видалити існуючий локальний нодем

    npm видалити nodemon - -

  2. встановіть його знову глобально.

    npm i -g nodemon


-2

Видаліть nodemon, оскільки це залежність від розробника, і використовуйте node замість нього.

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

Це спрацювало для мене.


Не відповідає на запитання. node і nodemon мають різне призначення.
joedotnot

це різна річ. Для nodemon це повинен бути "сервер": "nodemon app.js"
Кумар,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.