Nodemon: Nodemon์€ ํŒŒ์ผ ๋ณ€๊ฒฝ์‹œ ์„œ๋ฒ„๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2014๋…„ 01์›” 05์ผ  ยท  32์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: remy/nodemon

v1.0.1๋กœ ์—…๋ฐ์ดํŠธ ํ•œ ๋‹ค์Œ v1.0.4๋กœ ์—…๋ฐ์ดํŠธํ–ˆ๋Š”๋ฐ ํŒŒ์ผ ๋ณ€๊ฒฝ์‹œ ์„œ๋ฒ„๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

C:\wamp\www\DoLyfe>nodemon -V --dump server.js
5 Jan 20:56:41 - [nodemon] v1.0.4
5 Jan 20:56:41 - [nodemon] to restart at any time, enter `rs`
5 Jan 20:56:41 - [nodemon] ignoring: .git/* node_modules/**/node_modules/*
5 Jan 20:56:41 - [nodemon] watching: *.*
5 Jan 20:56:41 - [nodemon] watching extensions: js
--------------
{ run: false,
  system: { noWatch: false, watchWorks: false },
  required: false,
  dirs: [ 'C:\\wamp\\www\\DoLyfe' ],
  timeout: 1000,
  options:
   { verbose: true,
     dump: true,
     script: 'server.js',
     args: [],
     ignore:
      [ '.git/',
        'node_modules/**/node_modules/',
        re: /\.git/|node_modules/.*.*/node_modules// ],
     watch: [ '*.*', re: /.*\..*/ ],
     restartable: 'rs',
     execMap: { py: 'python', rb: 'ruby' },
     stdin: true,
     execOptions:
      { script: 'server.js',
        exec: 'node',
        nodeArgs: undefined,
        ext: 'js',
        execArgs: [] },
     ext: 'js',
     monitor: [ '*.*', '!.git/*', '!node_modules/**/node_modules/*' ] },
  load: [Function],
  reset: [Function: reset],
  lastStarted: 0,
  loaded: [] }
--------------
OS: win32 x64
node: v0.10.22
nodemon: v1.0.4
cwd: C:\wamp\www\DoLyfe
command: node C:\Users\Alex\AppData\Roaming\npm\node_modules\nodemon\bin\nodemon.js -V --dump server
.js
--------------
5 Jan 20:56:41 - [nodemon] exiting

server.js ๋ฐ ๊ธฐํƒ€ js ํŒŒ์ผ์„ ํ•˜์œ„ ํด๋”์— ๋ณ€๊ฒฝํ•˜๊ณ  ์ €์žฅํ•˜๋Š”๋ฐ ์•„๋ฌด ์ผ๋„ ์ผ์–ด๋‚˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค (์„œ๋ฒ„๊ฐ€ ๋‹ค์‹œ ์‹œ์ž‘๋˜์ง€ ์•Š๊ณ  ์‹ค์ œ ํŽ˜์ด์ง€ ์ถœ๋ ฅ์œผ๋กœ ํ…Œ์ŠคํŠธ ๋จ).

bug windows

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

http://www.reactiongifs.us/wp-content/uploads/2013/03/nevermind_nathan_fillion.gif

๋ชจ๋“  32 ๋Œ“๊ธ€

ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค.

์“ฐ๋ ˆ๊ธฐ. ๊ทธ ์œ„์—.

๋ชจ๋“  ํ”Œ๋žซํผ์—์„œ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์ž‘์—…์„ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ณ ์ • ๋ฐ [email protected]์˜ npm์—์„œ

v1.0.5๋กœ ์—…๋ฐ์ดํŠธ๋˜์—ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

C:\wamp\www\DoLyfe>nodemon -V --dump server.js
6 Jan 00:34:03 - [nodemon] v1.0.5
6 Jan 00:34:03 - [nodemon] to restart at any time, enter `rs`
6 Jan 00:34:03 - [nodemon] ignoring: .git/* node_modules/**/node_modules/*
6 Jan 00:34:03 - [nodemon] watching: *.*
6 Jan 00:34:03 - [nodemon] watching extensions: js
--------------
{ run: false,
  system: { noWatch: false, watchWorks: false },
  required: false,
  dirs: [ 'C:\\wamp\\www\\DoLyfe' ],
  timeout: 1000,
  options:
   { verbose: true,
     dump: true,
     script: 'server.js',
     args: [],
     ignore:
      [ '.git/',
        'node_modules/**/node_modules/',
        re: /\.git/|node_modules/.*.*/node_modules// ],
     watch: [ '*.*', re: /.*\..*/ ],
     restartable: 'rs',
     execMap: { py: 'python', rb: 'ruby' },
     stdin: true,
     execOptions:
      { script: 'server.js',
        exec: 'node',
        nodeArgs: undefined,
        ext: 'js',
        execArgs: [] },
     ext: 'js',
     monitor: [ '*.*', '!.git/*', '!node_modules/**/node_modules/*' ] },
  load: [Function],
  reset: [Function: reset],
  lastStarted: 0,
  loaded: [] }
--------------
OS: win32 x64
node: v0.10.22
nodemon: v1.0.5
cwd: C:\wamp\www\DoLyfe
command: node C:\Users\Alex\AppData\Roaming\npm\node_modules\nodemon\bin\nodemon.js -V --dump server
.js
--------------
6 Jan 00:34:03 - [nodemon] exiting

์ฐธ๊ณ  : ๋‚ด ๋ช…๋ น ์ค„์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

nodemon -V server.js

๊ทธ๋ฆฌ๊ณ  ํŒŒ์ผ์€์ด ๋ช…๋ น์ด ์ž…๋ ฅ ๋œ ํด๋”์— ์žˆ์Šต๋‹ˆ๋‹ค.

http://www.reactiongifs.us/wp-content/uploads/2013/03/nevermind_nathan_fillion.gif

์ข‹์•„, ๊ทธ๋ž˜์„œ ๋‚˜๋Š” ๋‹น์‹ ์˜ ๊ตฌ์„ฑ์—์„œ watchWorks: false -๊ทธ๊ฒƒ์ด ์‚ฌ์‹ค์ด์–ด์•ผ ํ•  ๋•Œ ...์ด ๋ฌธ์ œ์˜ ์›์ธ์ž„์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์–ด๋–ค Windows OS๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? (๋‚˜๋Š” XP์—์„œ ํ…Œ์ŠคํŠธํ–ˆ์Šต๋‹ˆ๋‹ค ... ์•„๋งˆ ์•ฝ๊ฐ„ ๋‚ฎ์•˜์Šต๋‹ˆ๋‹ค!) ๊ทธ๋ฆฌ๊ณ  ์–ด๋–ค ๋ฒ„์ „์˜ ๋…ธ๋“œ (v0.10.23์„ ํ…Œ์ŠคํŠธํ–ˆ์Šต๋‹ˆ๋‹ค).

๋‹น์‹ ์€ ๋˜ํ•œ ์ด๊ฒƒ์„ ์‹œ๋„ํ•˜๊ณ  ๋‚˜์—๊ฒŒ ์ถœ๋ ฅ์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

var fs = require('fs'),
    crypto = require('crypto'),
    file = 'test' + crypto.randomBytes(16).toString('hex');

console.log('watching', file);

fs.writeFileSync(file, 'ok');

setTimeout(function () {
  fs.watch(file, { persistent: false }, function (event, filename) {
    console.log('fs.watch worked', filename);
  });
}, 1000);

fs.watchFile(file, function (a, b) {
  console.log('watchFile worked');
})

setTimeout(function () {
  fs.writeFileSync(file, 'ok1');
}, 2000);

nodemon์ด ์•„๋‹ˆ๋ผ "node script.js"๋กœ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”,

๋‚˜๋Š” ๋˜ํ•œ์ด ๋ฌธ์ œ์— ์ง๋ฉดํ•œ๋‹ค. Windows 8.1 (x64), Node 0.10.24๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋ฅผ์œ„ํ•œ์ด ๋ช…๋ น์˜ ์ถœ๋ ฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

>node test.js
watching test5aa09b09f6618bf5fd3c3d53fba9bd1f
fs.watch worked test5aa09b09f6618bf5fd3c3d53fba9bd1f
fs.watch worked test5aa09b09f6618bf5fd3c3d53fba9bd1f
watchFile worked

์ƒ์„ฑ ๋œ ํŒŒ์ผ์„ ์—ด๊ณ  ํŒŒ์ผ์— ์ถ”๊ฐ€ํ•˜๋ฉด ๋™์ผํ•œ ๋ฉ”์‹œ์ง€๊ฐ€ ๋‹ค์‹œ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

๊ฐ์‚ฌ!

nodemon --dump ์˜ ์ถœ๋ ฅ์„ ํฌํ•จํ•˜์—ฌ
config.

2014 ๋…„ 1 ์›” 5 ์ผ ์ผ์š”์ผ์— gaborpro๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”,

๋‚˜๋Š” ๋˜ํ•œ์ด ๋ฌธ์ œ์— ์ง๋ฉดํ•œ๋‹ค. Windows 8.1 (x64), Node 0.10.24๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋ฅผ์œ„ํ•œ์ด ๋ช…๋ น์˜ ์ถœ๋ ฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋…ธ๋“œ test.js
test5aa09b09f6618bf5fd3c3d53fba9bd1f ์‹œ์ฒญ
fs.watch ์ž‘์—… ํ…Œ์ŠคํŠธ 5aa09b09f6618bf5fd3c3d53fba9bd1f
fs.watch ์ž‘์—… ํ…Œ์ŠคํŠธ 5aa09b09f6618bf5fd3c3d53fba9bd1f
watchFile์ด ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ƒ์„ฑ ๋œ ํŒŒ์ผ์„ ์—ด๊ณ  ํŒŒ์ผ์— ์ถ”๊ฐ€ํ•˜๋ฉด ๋™์ผํ•œ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.
๋‹ค์‹œ ๋ฉ”์‹œ์ง€.

๊ฐ์‚ฌ!

โ€”
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ํšŒ์‹ ํ•˜๊ฑฐ๋‚˜ Gi tHub์—์„œ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.
.

โ€” ๋ ˆ๋ฏธ

์ €๋Š” ์ง€๊ธˆ ์ผํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์Šฌํ”„๊ฒŒ๋„ ์ œ ๊ฐ€์ •์šฉ ์ปดํ“จํ„ฐ์— ์•ก์„ธ์Šค ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ €๋…์— ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋„์›€์ด๋œ๋‹ค๋ฉด npm๊ณผ ํ•จ๊ป˜ ์ œ๊ณต๋˜๋Š” ๊ธฐ๋ณธ ๊ตฌ์„ฑ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

@remy lol, gif๋Š” ์žฌ๋ฏธ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค! :-)

๋‚˜๋Š” Win 8 x64 ์žˆ๊ณ , v0.10.22 ๋…ธ๋“œ๋กœ ์‹œ๋„ํ•˜๊ณ  v0.10.24 ๋กœ ์—…๋ฐ์ดํŠธํ–ˆ์Šต๋‹ˆ๋‹ค (btw ๋…ธ๋“œ ๋ฒ„์ „์€ --dump ์ถœ๋ ฅ์— ์žˆ์Šต๋‹ˆ๋‹ค).

๋‹ค์Œ์€ ์Šคํฌ๋ฆฝํŠธ์˜ ์ถœ๋ ฅ์ž…๋‹ˆ๋‹ค.

watching test808f642ac04ce787747d5dd5f0581f2a
fs.watch worked test808f642ac04ce787747d5dd5f0581f2a
fs.watch worked test808f642ac04ce787747d5dd5f0581f2a
watchFile worked

--dump ๋…ธ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ ์ถœ๋ ฅ v0.10.24 :

C:\wamp\www\DoLyfe>nodemon -V --dump server.js
6 Jan 14:54:38 - [nodemon] v1.0.5
6 Jan 14:54:38 - [nodemon] to restart at any time, enter `rs`
6 Jan 14:54:38 - [nodemon] ignoring: .git/* node_modules/**/node_modules/*
6 Jan 14:54:38 - [nodemon] watching: *.*
6 Jan 14:54:38 - [nodemon] watching extensions: js
--------------
{ run: false,
  system: { noWatch: false, watchWorks: false },
  required: false,
  dirs: [ 'C:\\wamp\\www\\DoLyfe' ],
  timeout: 1000,
  options:
   { verbose: true,
     dump: true,
     script: 'server.js',
     args: [],
     ignore:
      [ '.git/',
        'node_modules/**/node_modules/',
        re: /\.git/|node_modules/.*.*/node_modules// ],
     watch: [ '*.*', re: /.*\..*/ ],
     restartable: 'rs',
     execMap: { py: 'python', rb: 'ruby' },
     stdin: true,
     execOptions:
      { script: 'server.js',
        exec: 'node',
        nodeArgs: undefined,
        ext: 'js',
        execArgs: [] },
     ext: 'js',
     monitor: [ '*.*', '!.git/*', '!node_modules/**/node_modules/*' ] },
  load: [Function],
  reset: [Function: reset],
  lastStarted: 0,
  loaded: [] }
--------------
OS: win32 x64
node: v0.10.24
nodemon: v1.0.5
cwd: C:\wamp\www\DoLyfe
command: node C:\Users\Alex\AppData\Roaming\npm\node_modules\nodemon\bin\nodemon.js -V --dump server
.js
--------------
6 Jan 14:54:38 - [nodemon] exiting

@alexilyaev ๋Œ€๋‹จํ•ฉ๋‹ˆ๋‹ค-์„ธ๋ถ€ ์‚ฌํ•ญ์„ ์‘์›ํ•ฉ๋‹ˆ๋‹ค (์˜ˆ, ๋…ธ๋“œ ๋ฒ„์ „์ด ๋คํ”„์— ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์žŠ์—ˆ์Šต๋‹ˆ๋‹ค!).

๊ฐ„๋‹จํ•œ ํ…Œ์ŠคํŠธ๊ฐ€ (์‹œ๊ณ„ ์ง€์›์„ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด) ํšจ๊ณผ๊ฐ€ ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด์ƒํ•˜์ง€๋งŒ system.watchWorks ๊ตฌ์„ฑ ์„ค์ •์ด false์ž…๋‹ˆ๋‹ค.

freenode.net์˜ #nodemon irc ์ฑ„๋„์—์„œ ์ €์™€ ํ•จ๊ป˜ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚˜๊ณ  ์žˆ๋Š”์ง€ ํ…Œ์ŠคํŠธํ•˜๊ณ  ์ˆ˜์ •ํ•˜๊ธฐ ์œ„ํ•ด ๋ช‡ ๊ฐ€์ง€ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹œ๋„ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

๋ฐฉ๊ธˆ ๋‚ด Windows 8 VM์„ ์‹œ์ž‘ํ–ˆ๋Š”๋ฐ system.watchWorks = true ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฑด ์ด์ƒํ•ฉ๋‹ˆ๋‹ค.

(๊ทธ๋ฆฌ๊ณ  ์ด์ œ ๋ฐฉ๊ธˆ ๋‚ด Windows ๋žฉํ†ฑ์„ ๋ถ€ํ™œ ์‹œ์ผฐ๊ณ  _even_ watchWorks์— ํ•ด๋‹นํ•˜๋Š” ์‚ฌ์‹ค์„ ๋ณด์—ฌ ์ฃผ์ง€๋งŒ ๋ถ„๋ช…ํžˆ ์ผ๋ถ€ ์‚ฌ์šฉ์ž์—๊ฒŒ๋Š” ๋น„ํ–‰์ด ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ •๋ ฌํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค!).

์ €๋„ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹œ๋„ํ•ด ๋ณด์‹œ๋ฉด ๊ธฐ๊บผ์ด ๋„์™€ ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ณง ์ถœ์‹œ๋ฉ๋‹ˆ๋‹ค.

์ด ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ™•์ธ ์ˆ˜์ • : https://gist.github.com/remy/8283715

1.0.6 ํ™•์ธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
๊ฐ์‚ฌ!

์งˆ๋ฌธ์ž…๋‹ˆ๋‹ค. Git pull์„ ์ˆ˜ํ–‰ํ•˜๋ฉด -V cmd๋กœ ์ด๋Ÿฌํ•œ ํ–‰์ด ํŠธ๋ฆฌ๊ฑฐ๋ฉ๋‹ˆ๋‹ค.

6 Jan 20:59:36 - [nodemon] files triggering change check: .git
6 Jan 20:59:36 - [nodemon] changes after filters (before/after): 1/0
6 Jan 20:59:36 - [nodemon] files triggering change check: .git
6 Jan 20:59:36 - [nodemon] changes after filters (before/after): 1/0

๊ทธ๋“ค์€ ์žฌ์‹œ์ž‘์„ ํŠธ๋ฆฌ๊ฑฐํ•˜์ง€ ์•Š์ง€๋งŒ .git ์ด ๋ฌด์‹œ ๋ชฉ๋ก์˜ ์ผ๋ถ€์ธ ๊ฒฝ์šฐ ์™œ ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

{
    "ext": "js json",
    "ignore": [
        ".git",
        "app",
        "config",
        "logs",
        "node_modules",
        "scripts",
        "test"
    ]
}

๋” ๊นŠ์€ ์ˆ˜์ค€์€ ์•„๋‹ˆ์ง€๋งŒ ๋ฌด์‹œ ๋œ ํด๋” (์˜ˆ : app\index.html ) ๋ฐ”๋กœ ์•„๋ž˜์—์žˆ๋Š” html ํŒŒ์ผ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋˜ ๋‹ค๋ฅธ ๋น ๋ฅธ ๋ฐฉ๋ฒ•์œผ๋กœ Nodemon์ด ์‹คํ–‰์ค‘์ธ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ํ•˜๋‚˜ ์ด์ƒ์˜ ํŒŒ์ผ (์˜ˆ : server.js ) ๋งŒ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๋„๋ก ์ง€์‹œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?
๊ทธ๋ž˜์„œ ๋‚˜๋Š” ๊ทธ ๋ฃจํŠธ ๋””๋ ‰ํ† ๋ฆฌ์˜ ๋ชจ๋“  ํด๋”๋ฅผ ๋ฌด์‹œํ•˜๊ฑฐ๋‚˜ ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ์— server.js ๋ฅผ ๋„ฃ์„ ํ•„์š”๊ฐ€ ์—†์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

.git์ด ํŠธ๋ฆฌ๊ฑฐ ๊ฒ€์‚ฌ์— ๋‚˜์—ด๋˜๋ฉด-๋งž์Šต๋‹ˆ๋‹ค. ๋ฌด์‹œํ•œ ๋‚ด์šฉ์— ๋”ฐ๋ผ ๋ชจ๋‘ ๋ฌด์‹œํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ์–ด๋–ป๊ฒŒ ๋“  ์ˆ˜ํ‘œ๋ฅผ ํ†ต๊ณผํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค (์ด๋ฒˆ ์ฃผ์— ๋‹ค์‹œ ํ…Œ์ŠคํŠธํ•˜๊ณ  ๊ทธ๊ฒƒ์„ ์–ต์ œํ•˜๊ธฐ ์œ„ํ•ด ํ•  ์ˆ˜์žˆ๋Š” ์ผ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๋‹จ์ผ ํŒŒ์ผ์—์„œ๋งŒ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๋ ค๋ฉด ( server.js ๋‹น์‹ ์ด ๋งํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค), ๊ทธ๋ƒฅ ์‹œ๊ณ„์— ๋„ฃ์œผ์‹ญ์‹œ์˜ค.

{
  "watch": ["server.js"]
}

์ด์ œ nodemon์€ server.js ๋ณ€๊ฒฝ๋œ ๊ฒฝ์šฐ์—๋งŒ ๋‹ค์‹œ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค.

ํ›Œ๋ฅญํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋Ÿฐ ๋‹ค์Œ ๋‹ค๋ฅธ ๋ชจ๋“  ํŒŒ์ผ ์ €์žฅ์ด change check ํ–‰์„ ํŠธ๋ฆฌ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. ๋น„๋ก ํ•˜๋‚˜์˜ ํŒŒ์ผ ๋งŒ ์ˆ˜์‹ ํ•ด์•ผํ•˜๋”๋ผ๋„ ๋ง์ž…๋‹ˆ๋‹ค.

๋ณด๋ฉด watch.js , ๋‚˜๋Š” ๊ฐ€์ • ignoredFilter ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๊ธฐ ์ „์— ํ˜ธ์ถœํ•ด์•ผ filterAndRestart ์ด ๋ผ์ธ์ด ์ถœ๋ ฅ๋˜๋Š” ๊ณณ์ด๋‹ค.

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

@remy Btw, Win 8 VM๊ณผ ์šฐ๋ฆฌ ์„ค์ •์˜ ์ฐจ์ด์ ์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

์˜๋ฏธ, ์™œ ๋‹น์‹ ์˜ ํ…Œ์ŠคํŠธ์—์„œ๋Š” ํšจ๊ณผ๊ฐ€ ์žˆ์—ˆ์ง€๋งŒ ์šฐ๋ฆฌ์—๊ฒŒ๋Š” ํšจ๊ณผ๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๊นŒ?

์„ค์ •์˜ ์ฐจ์ด์ ์ด ๋ฌด์—‡์ธ์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค (์•„๋งˆ๋„
๋‚ด VM์˜ ํŒŒ์ผ ์‹œ์Šคํ…œ์ด Mac OS์— ์žˆ๊ณ  ํŒŒ์ผ ์‹œ์Šคํ…œ์ด ์–ด๋–ป๊ฒŒ ๋“ 
๋‹ค๋ฅด์ง€๋งŒ, ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค),ํ•˜์ง€๋งŒ --dump์—์„œ ๋ณด๋Š” ๊ฒƒ์€
config.system.watchWorks๋Š” ๊ฑฐ์ง“์ด์ง€๋งŒ ๋‚ด ๊ฒƒ์€ ์ฐธ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์˜ค๋Š˜ ์ €๋…์— ํ…Œ์ŠคํŠธํ–ˆ์„ ๋•Œ watchWorks๊ฐ€ ๊ฑฐ์ง“์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค.
์ด ์ˆ˜์ • ์‚ฌํ•ญ์„ ์™„์ „ํžˆ ํ…Œ์ŠคํŠธ ํ•  ์ˆ˜ ์žˆ์—ˆ๋˜ ์ด์œ ๋Š”
์ œ๋Œ€๋กœ ๋ฐœํ–‰ํ•˜์‹ญ์‹œ์˜ค.

2014 ๋…„ 1 ์›” 7 ์ผ 22:18์— Alex Ilyaev [email protected] ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.

@remy https://github.com/remy Btw, ์ฐจ์ด์ ์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ
๋‹น์‹ ์€ Win 8 VM์ด๊ณ  ์šฐ๋ฆฌ์˜ ์„ค์ •์ž…๋‹ˆ๊นŒ?

์˜๋ฏธ, ์™œ ๋‹น์‹ ์˜ ํ…Œ์ŠคํŠธ์—์„œ๋Š” ํšจ๊ณผ๊ฐ€ ์žˆ์—ˆ์ง€๋งŒ ์šฐ๋ฆฌ์—๊ฒŒ๋Š” ํšจ๊ณผ๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๊นŒ?

โ€”
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ํšŒ์‹ ํ•˜๊ฑฐ๋‚˜ Gi tHub์—์„œ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.
.

์•ˆ๋…•ํ•˜์„ธ์š” @remy , ์ €๋Š” typescript๋กœ API REST๋ฅผ ์ž‘์—… ์ค‘์ด๋ฉฐ nodemon์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ๋Œ€ํ•ด ์„œ๋ฒ„๋ฅผ ๋‹ค์‹œ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. ์œ ๋‹‰์Šค ์‹œ์Šคํ…œ์—์„œ ์™„๋ฒฝํ•˜๊ฒŒ ์ž‘๋™ํ•˜์ง€๋งŒ ๋‹ค๋ฅธ ๊ณต๋™ ์ž‘์—…์ž๋Š” ์ฐฝ์ด ์žˆ๊ณ  ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚˜๊ณ  ์žˆ๋Š”์ง€ ์•„์‹ญ๋‹ˆ๊นŒ?

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๋‹น์‹ ์ด ์ œ๊ณต ํ•œ ์ •๋ณด๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ์ฐฝ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
bash ํ”Œ๋žซํผ.

2016 ๋…„ 11 ์›” 18 ์ผ ๊ธˆ์š”์ผ 22:26 raansilrey, [email protected] ์ž‘์„ฑ :

์•ˆ๋…•ํ•˜์„ธ์š” @remy https://github.com/remy , API REST์—์„œ ์ž‘์—… ์ค‘์ž…๋‹ˆ๋‹ค.
typescript์™€ ๋‚˜๋Š” nodemon์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ€๊ฒฝ ๋  ๋•Œ๋งˆ๋‹ค ์„œ๋ฒ„๋ฅผ ๋‹ค์‹œ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. ํšจ๊ณผ๊ฐ€์žˆ๋‹ค
์œ ๋‹‰์Šค ์‹œ์Šคํ…œ์—์„œ๋Š” ์™„๋ฒฝํ•˜์ง€๋งŒ ๋‹ค๋ฅธ ๊ณต๋™ ์ž‘์—…์ž๋Š” ์ฐฝ์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ
์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚˜๊ณ  ์žˆ๋Š”์ง€ ์•„์‹ญ๋‹ˆ๊นŒ?

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/remy/nodemon/issues/252#issuecomment -261658459 ๋˜๋Š” ์Œ์†Œ๊ฑฐ
์‹ค
https://github.com/notifications/unsubscribe-auth/AAA1hK1SUmJVf-J4wZTgVLBEz1cc_Yz5ks5q_iYEgaJpZM4BXgow
.

๋น„์Šทํ•œ ๋ฌธ์ œ๊ฐ€์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. Windows 10์„ ์‹คํ–‰ ์ค‘์ด๋ฉฐ ์ฝ”๋“œ๋ฅผ ๋ณ€๊ฒฝํ•  ๋•Œ nodemon์ด ์›น ์„œ๋น„์Šค๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์–ด๋–ค ์ด์œ ๋กœ ๋“  ๋…ธ๋“œ๋Š” C : \ Program Files (x86)์— ์„ค์น˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์—…๋ฐ์ดํŠธ๋ฅผ ์‹œ๋„ ํ•  ๋•Œ๋งˆ๋‹ค ๊ด€๋ฆฌ ๊ถŒํ•œ์ด ํ•„์š”ํ•˜๋‹ค๊ณ  ๋ถˆํ‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋งˆ์นจ๋‚ด nodejs ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ c; \ ๋“œ๋ผ์ด๋ธŒ์˜ ๋ฃจํŠธ๋กœ ์˜ฎ๊ฒผ์Šต๋‹ˆ๋‹ค. CMD ๋ผ์ธ์„ ์‚ฌ์šฉํ•˜๋“  PowerShell์„ ์‚ฌ์šฉํ•˜๋“  ์ด์ œ ๋ชจ๋“  ๊ฒƒ์ด ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

๊ฐ™์€ ๋ฌธ์ œ. Linux Mint 18, 64 ๋น„ํŠธ. tiddlywiki ์„œ๋ฒ„๋ฅผ ์‹คํ–‰ํ•˜๋ ค๊ณ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์€ Nodemon ๋คํ”„์ž…๋‹ˆ๋‹ค.

[๋…ธ๋“œ ๋ชฌ]

1.11.0
์–ธ์ œ๋“ ์ง€ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๋ ค๋ฉด [nodemon]์„ ์ž…๋ ฅํ•˜์‹ญ์‹œ์˜ค. rs

[nodemon] ์‹œ์ฒญ : .

๋…ธ๋“œ : v6.9.1
nodemon : 1.11.0
๋ช…๋ น : /home/who/.nvm/versions/node/v6.9.1/bin/node /home/who/.nvm/versions/node/v6.9.1/bin/nodemon --dump
cwd : / home / who / yaah / Ildy

์šด์˜์ฒด์ œ : linux x64

{์‹คํ–‰ : ๊ฑฐ์ง“,
์‹œ์Šคํ…œ : {cwd : '/ home / who / yaah / Ildy'},
ํ•„์ˆ˜ : ๊ฑฐ์ง“,
dirs : [ '/ home / who / yaah / Ildy'],
์ œํ•œ ์‹œ๊ฐ„ : 1000,
์˜ต์…˜ :
{๋คํ”„ : ์ฐธ,
๋ฌด์‹œ :
[ '.git',
'.nyc_output',
'.sass-cache',
'bower_components',
'์ ์šฉ ๋ฒ”์œ„',
'๋…ธ๋“œ _ ๋ชจ๋“ˆ',
re : /.git|.nyc_output|.sass-cache|bower_components|coverage|node_modules/],
์‹œ๊ณ„ : [ ' . ', re : /. .. /],
ignoreRoot :
[ '.git',
'.nyc_output',
'.sass-cache',
'bower_components',
'์ ์šฉ ๋ฒ”์œ„',
'node_modules'],
์žฌ์‹œ์ž‘ ๊ฐ€๋Šฅ : 'rs',
์ƒ‰์ƒ : ์‚ฌ์‹ค,
execMap : {py : 'python', rb : 'ruby'},
stdin : ์ฐธ,
runOnChangeOnly : false,
verbose : false,
stdout : ์ฐธ,
execOptions :
{์Šคํฌ๋ฆฝํŠธ : null,
exec : '๋…ธ๋“œ',
์ธ์ˆ˜ : [],
scriptPosition : null,
nodeArgs : ์ •์˜๋˜์ง€ ์•Š์Œ,
๋‚ด์„  : 'js, json',
ํ™˜๊ฒฝ : {},
execArgs : []},
๊ฐ์‹œ ์žฅ์น˜:
[ ' . ',
'! .git',
'! .nyc_output',
'! .sass-cache',
'! bower_components',
'!์ ์šฉ ๋ฒ”์œ„',
'! node_modules']},
์‹ ํ˜ธ : 'SIGUSR2',
๋ถ€ํ•˜ : [๊ธฐ๋Šฅ],
์žฌ์„ค์ • : [๊ธฐ๋Šฅ : ์žฌ์„ค์ •],
lastStarted : 0,
๋กœ๋“œ ๋จ : [],
watchInterval : null,

๋ช…๋ น : {raw : {์‹คํ–‰ ํŒŒ์ผ : 'node', ์ธ์ˆ˜ : []}, ๋ฌธ์ž์—ด : 'node'}}

์ •๋ณด๋ฅผ ์œ„ํ•ด; ์˜ค๋Š˜ nodemon 1.11.0 ๋ฐ Node v7.10.0์—์„œ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚ด ๋ฃจํŠธ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ .build ํด๋”๋ฅผ ์ œ๊ฑฐํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค. .build ๋””๋ ‰ํ† ๋ฆฌ์—๋Š” ๋‚ด ์†Œ์Šค ์ฝ”๋“œ ํŠธ๋ฆฌ์˜ ๋ฐ”๋ฒจ๋กœ ๋ณ€ํ™˜ ๋œ ๋ฒ„์ „์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋‹จ ์ œ๊ฑฐ๋˜๋ฉด ๋ชจ๋“  ๊ฒƒ์ด ๋‹ค์‹œ ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ์ง€๋งŒ ๊ทธ ์›์ธ์€ ์Šคํฌ๋ฆฝํŠธ ์ƒ์œ„ ํด๋”์— . (์ ) ์ ‘๋‘์‚ฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
์ƒ์œ„ ํด๋”์˜ ํด๋” ์ด๋ฆ„์— . ๊ฐ€์žˆ์„ ๋•Œ nodemon์ด ๋‹ค์‹œ ์‹œ์ž‘๋˜์ง€ ์•Š๋Š” ์ด์œ ์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
. ์ ‘๋‘์‚ฌ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ๋ชจ๋“  ๊ฒƒ์ด ๋‹ค์‹œ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.

-L (๋ ˆ๊ฑฐ์‹œ ์˜ต์…˜) ์‚ฌ์šฉ์€ ๋ฐฉ๋ž‘์ž์—์„œ ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ–ˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๊ฒƒ ์—†์ด๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค

@iemadk ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค, ๋‚  ๋ฏธ์น˜๊ฒŒ ๋งŒ๋“ค์—ˆ์–ด์š”!

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰