Як виконати стартовий скрипт за допомогою Nodemon


90

Як я можу виконати стартовий сценарій із файлу package.json за допомогою Nodemon?


Ви впевнені, що можете виконати стартовий скрипт з package.json? Тому що з того, що я знаю, package.json має перерахувати всі ваші залежності, а nodemon - тримати ваш процес запущеним. Я не зовсім впевнений, на що ви тут натякаєте?
Saras Arya

Відповіді:


142

Це буде проста команда для цього

nodemon --exec npm start

Що робити, якщо мені потрібно запускати лише тести без запуску програми? Ви вирішуєте обидва варіанти.
Сергій

1
це працює, npm startале не запускає сервер вузлів для мене .. як би він знав, де знаходиться server.js?
Sonic Soul

39

У пакеті json:

{
  "name": "abc",
  "version": "0.0.1",
  "description": "my server",
  "scripts": {
    "start": "nodemon my_file.js"
  },
  "devDependencies": {
    "nodemon": "~1.3.8",
  },
  "dependencies": {

  }
}

Тоді з терміналу ви можете скористатися npm start

Встановлення Nodemon: https://www.npmjs.com/package/nodemon


1
На жаль, шукаю спосіб виконати стартовий скрипт за допомогою nodemon, а не виконати nodemon у стартовому сценарії. Вибачте, якщо це не було зрозуміло.
Citronen

6
Не вийде з npm startладу у виробництві через відсутність нодемона?
ripper234

2
npm run startніnpm start
М. Дауаді

1
Я новачок з npm. Я не розумію, чому нам потрібно вказувати стартовий скрипт, поки ми можемо використовувати nodemon нестандартно? Я просто встановлюю nodemon з npm і використовую його безпосередньо, не вказуючи жодного сценарію, і він чудово працює.
Hokhy Tann

@ M.Dhaouadi npm startє псевдонімомnpm run start
Джордж

16

У мене є файл TypeScript під назвою "server.ts". Наступні сценарії npm налаштовують Nodemon та npm для запуску мого додатка та контролю за будь-якими змінами у файлах TypeScript:

"start": "nodemon -e ts  --exec \"npm run myapp\"",
"myapp": "tsc -p . && node server.js",

У мене вже є Nodemon про залежності. Коли я запускаю npm start, він попросить Nodemon відстежувати свої файли за допомогою -eперемикача, а потім викликає myappскрипт npm, який є простою комбінацією транпіляції файлів TypeScript та запуску результуючого server.js. Коли я змінюю файл TypeScript, через -eперемикання відбувається той самий цикл, і нові файли .js будуть сформовані та виконані.


14

Я використовую Nodemon версії 1.88.3 у своєму проекті Node.js. Щоб встановити Nodemon, див. Https://www.npmjs.com/package/nodemon .

Перевірте ваш package.json, перевірте, чи змінилися "сценарії" так:

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

server.jsце моє ім'я файлу, ви можете використовувати інше ім'я для цього файлу, наприклад app.js.

Після цього запустіть це на своєму терміналі: npm run dev


6

Використання -exec:

"your-script-name": "nodemon [options] --exec 'npm start -s'"

Чи є інший спосіб, крім exec, зробити це?
Citronen

Просто nodemon [options] --exec 'npm start -s'якщо ви хочете зробити це з командного рядка.
nathanhleung

@ArnoldRoa Встановіть його.
Константин Ван

5

Спочатку змініть файл package.json ,

"scripts":
    { 
        "start": "node ./bin/www",
        "start-dev": "nodemon ./app.js"
    },

Після цього виконайте команду

npm run start-dev

1
Але коли ти втікаєш, app.jsти обходитьш усе, що ./bin/wwwробить ...
Джейк Вілсон,

1
щоразу відкривати цю нову вкладку
Квай-Гон Джинн,

5

У файлі package.json. змінити файл таким чином

"scripts":{ 
   "start": "node ./bin/www", 
   "start-dev": "nodemon ./app.js"
 },

а потім виконайте npm run start-dev


2

Нодемон випускає події при кожній зміні стану; запуск, перезапуск аварійного завершення тощо. Ви можете додати файл конфігурації Nodemon (nodemon.json) приблизно так:

{
   "events": {
       "start": "npm run *your_file*"
   }
}

Детальніше читайте в подіях Nodemon - запускайте завдання при запуску сервера, перезапуску, збої, виході .



1

Ви також можете встановити nodemon глобально для частого використання:

npm i nodemon -g або sudo npm i nodemon -g

потім відредагуйте package.json:

  "scripts": {
    "start": "node index.js",
    "dev": "nodemon index.js"
  },

Як правило, 'dev' вказує на розробку ( npm run dev ).


1

Це буде залежати від типів вашої установки Nodemon. Якщо ви встановлюєте Nodemon глобально за допомогою команд ( npm install nodemon --globalабо npm install nodemon -g), вам не потрібно вказувати будь-який сценарій для Nodemon у файлі package.json . Просто виконавши команду, nodemon index.jsви запустите ваш проект.

Але якщо ви встановлюєте Nodemon локально за командою, npm install nodemonвам слід вказати сценарій. Якщо ви називаєте це як start тоді npm run startабо npm startзапускатиме сервер для запуску.

// Absolutely no need for global installation
 "scripts": {
    "start": "nodemon index.js"
  }

1

Якщо ви nodemonвстановили глобально, просто запуск nodemonу вашому проекті автоматично запустить startсценарій з package.json.

Наприклад:

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

З документації nodemon :

nodemon також буде шукати властивість scripts.start у package.json (станом на nodemon 1.1.x).


0

В упаковці json:

"scripts": {
  "start": "node index",
  "dev": "nodemon index"
},

"devDependencies": {
  "nodemon": "^2.0.2"
}

А в терміналі для розробки:

npm run dev

І для запуску сервера регулярно:

npm start

Що таке "реєстратор" ? Ви маєте на увазі "звичайний" ?
Пітер Мортенсен

-1

Щоб уникнути глобальної інсталяції, додайте Nodemon як залежність, а потім ...

package.json

"scripts": {
    "start": "node ./bin/www",
    "start-dev": "./node_modules/nodemon/bin/nodemon.js ./bin/www"
  },

Ви все ще можете зробити його "start-dev": "nodemon ./bin/www", якщо встановити його за devDependencies
WoLfPwNeR,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.