Skip to content

Latest commit

ย 

History

History
executable file
ยท
377 lines (267 loc) ยท 13.8 KB

File metadata and controls

executable file
ยท
377 lines (267 loc) ยท 13.8 KB

js ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ค์ •

์ฐธ๊ณ ๋ฌธ์„œ:

๋ชฉ์ฐจ

NVM ์œผ๋กœ node ์„ค์น˜

NVM ์€ node ์˜ ๋ฒ„์ „์„ ํšจ๊ณผ์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ธฐ์กด์— node ๋ฅผ ์ „์—ญ ์„ค์น˜ํ•œ ๊ฒฝ์šฐ์—๋Š”, ๋‹ค์Œ ๋งํฌ์—์„œ ์ œ์•ˆํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ node ๋ฅผ ์‚ญ์ œํ•˜์ž.

โ€” mac ์—์„œ node.js ์„ค์น˜ํ•˜๊ธฐ

nvm ์„ค์น˜ํ•˜๊ธฐ

nvm ์€ cURL ๋˜๋Š” homebrew ๋กœ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

curl
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash

์ด ๋งํฌ๋Š” ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ๋‹ค. ๊ณต์‹ ๋ฌธ์„œ๋ฅผ ์ฐธ๊ณ ํ•˜์ž โ€” github: npm #installation

homebrew
brew install nvm

shell ์„ค์ • ํŒŒ์ผ ํ™•์ธ

nvm ์ด ์„ค์น˜๊ฐ€ ๋˜๋ฉด, ~/.zshrc ๋˜๋Š” ~/.bash_profile ๊ณผ ๊ฐ™์€ ์‰˜ ์„ค์ • ํŒŒ์ผ์— ๋‹ค์Œ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์ถ”๊ฐ€๋œ๋‹ค.

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm

์ถ”๊ฐ€๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ, ์ง์ ‘ ์ถ”๊ฐ€ํ•ด์ค˜์•ผ ํ•œ๋‹ค.

์ด ๊ณผ์ •์ด ์™„๋ฃŒ๋˜๋ฉด, source ~/.zshrc (์‰˜ ์„ค์ •ํŒŒ์ผ ์žฌ์„ค์ •) ๋˜๋Š” ํ„ฐ๋ฏธ๋„์„ ์žฌ์‹œ์ž‘ ํ•ด์•ผ ํ•œ๋‹ค.

์„ค์น˜ ํ™•์ธ

nvm --version
>>> 0.33.11
nvm ๋ช…๋ น์–ด๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ

์œ„์˜ ์„ค์น˜ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๊ธฐ ์ „์— ~/.nvm ํด๋”๊ฐ€ ์—†์œผ๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค. ๋‹ค์Œ์˜ ๋ช…๋ น์–ด๋กœ ํด๋”๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ๋‹ค์‹œ ์„ค์น˜ํ•œ๋‹ค.

mkdir ~/.nvm
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
homebrew ์˜ค๋ฅ˜ ๋ฉ”์„ธ์ง€
Please note that upstream has asked us to make explicit managing
nvm via Homebrew is unsupported by them and you should check any
problems against the standard nvm install method prior to reporting.

You should create NVM's working directory if it doesn't exist:

  mkdir ~/.nvm

curl ์˜ค๋ฅ˜ ๋ฉ”์„ธ์ง€
You have $NVM_DIR set to "/Users/ElohimAwmar/.nvm", but that directory does not exist. Check your profile files and environment.

์œ„ curl ๋ฉ”์„ธ์ง€๋Š”, ์œ„์˜ ์‰˜ ์„ค์ •์„ ํ•œ ๋’ค์— curl ๋ช…๋ น์„ ํ–ˆ์„ ๋•Œ ๋ฐœ์ƒํ•œ ์˜ค๋ฅ˜์ด๋‹ค.

Node ์„ค์น˜

LTS: Long Term Support ์˜ ์•ฝ์ž๋กœ, ์ผ๋ฐ˜์ ์œผ๋กœ ๊ถŒ์žฅ๋˜๋Š” ๋ฒ„์ „์ด๋‹ค.

  • LTS ๋ฒ„์ „ ์„ค์น˜: nvm install --lts (๊ถŒ์žฅ)
  • ์•ˆ์ „ํ™” ์ตœ์‹  ๋ฒ„์ „ ์„ค์น˜: nvm install stable
  • ํŠน์ • ๋ฒ„์ „์œผ๋กœ ์„ค์น˜: nvm install 8.9.4
  • ํŠน์ • ๋ฒ„์ „ ์ค‘ ์ตœ์‹ ๋ฒ„์ „์œผ๋กœ ์„ค์น˜: nvm intsall v8
# version 8.9.4 ๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ๋Š” nvm install 8.9.4
nvm install stable  # ์ด๊ฒƒ๋ณด๋‹ค LTS ์„ค์น˜๋ฅผ ์ถ”์ฒœํ•œ๋‹ค.

>>> Downloading and installing node v11.4.0...
Downloading https://nodejs.org/dist/v11.4.0/node-v11.4.0-darwin-x64.tar.xz...
######################################################################## 100.0%
Computing checksum with shasum -a 256
Checksums matched!
Now using node v11.4.0 (npm v6.4.1)
Creating default alias: default -> stable (-> v11.4.0)

์„ค์น˜๋œ ๋…ธ๋“œ์˜ ๊ฒฝ๋กœ๋Š” which ๋ช…๋ น์–ด๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ~/.nvm/ ์•„๋ž˜ ์ €์žฅ๋œ๋‹ค.

which node
>>> /Users/ElohimAwmar/.nvm/versions/node/v11.4.0/bin/node

nvm ๋ช…๋ น์–ด

์ถ”๊ฐ€ ์‚ฌ์šฉ๋ฒ•์€ ๋‹ค์Œ ๊ณต์‹ ๋ฌธ์„œ๋ฅผ ์ฐธ๊ณ ํ•˜์ž โ€” github.com: nvm #usage-1

Node ๋ฒ„์ „์œผ๋กœ ์„ค์น˜

nvm install <version>: ํ•ด๋‹น ๋ฒ„์ „์œผ๋กœ ๋…ธ๋“œ๊ฐ€ ์„ค์น˜๋œ๋‹ค.

nvm install --lts  # LTS ๋ฒ„์ „ ์„ค์น˜ (๊ถŒ์žฅ)
nvm install 8.9.4
nvm install stable  # ์•ˆ์ •ํ™” ์ตœ์‹  ๋ฒ„์ „ ์„ค์น˜
nvm install v8  # ํ•ด๋‹น ๋ฒ„์ „์˜ ์ตœ์‹  ๋ฒ„์ „์„ ์ž๋™ ์„ค์น˜
์„ค์น˜ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฒ„์ „ ๋ชฉ๋ก ๋ณด๊ธฐ

nvm ls-remote

๋ฒ„์ „ ํ™•์ธ

nvm ls: ์„ค์น˜๋œ node ๋ฒ„์ „ ๋ชฉ๋ก ํ™•์ธ

~ ยป nvm ls
->     v10.14.2
        v11.4.0
         system
default -> 10.14.2 (-> v10.14.2)
node -> stable (-> v11.4.0) (default)
stable -> 11.4 (-> v11.4.0) (default)
iojs -> N/A (default)
lts/* -> lts/dubnium (-> v10.14.2)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.15.1 (-> N/A)
lts/carbon -> v8.14.0 (-> N/A)
lts/dubnium -> v10.14.2
์„ค์น˜๋œ node ๋ฒ„์ „์˜ alias ์„ค์ •

nvm alias <alias> <version>

nvm alias default 8.9.4
node ๋ฒ„์ „ ๋ณ€๊ฒฝ, ์ ์šฉ

nvm use <version>, nvm use <alias>

npm ์‚ฌ์šฉํ•˜๊ธฐ

์ฐธ๊ณ : velopert: [Node.JS] ๊ฐ•์ขŒ 05ํŽธ: NPM

npm ์€ javascript ์˜ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž์ด๋‹ค. ์ข€๋” ๋‚˜์€ ์†๋„์™€ ์บ์‹ฑ ์‹œ์Šคํƒฌ์„ ์›ํ•œ๋‹ค๋ฉด, Yarn ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

npm init๊ณผ package.json

1. npm init

npm ์„ ํ†ตํ•ด ํŒจํ‚ค์ง€๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š”, ๋‚ด ํ”„๋กœ์ ํŠธ๋กœ npm ํŒจํ‚ค์ง€๋กœ ์„ค์ •ํ•ด์•ผ ํ•œ๋‹ค. ๊ทธ๊ฒƒ์ด npm init์ด๋ฉฐ, ํŒจํ‚ค์ง€์˜ ๋ชจ๋“  ์„ค์ •์„ ๋‹ด๊ณ  ์žˆ๋Š” package.json ํŒŒ์ผ์„ ์ƒ์„ฑํ•œ๋‹ค.

2. package.json

package.json ๋‚ด์šฉ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์„ค๋ช…์€ ๊ฐ์„ฑํ”„๋กœ๊ทธ๋ž˜๋งน: ๋ชจ๋‘ ์•Œ์ง€๋งŒ ๋ชจ๋‘ ๋ชจ๋ฅด๋Š” package.json์„ ์ฐธ์กฐํ•˜์ž.

  • ์œ„์น˜: node_project_dir/package.json
  • ์šฉ๋„: ํ”„๋กœ์ ํŠธ์˜ ๋ชจ๋“  ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ํŒŒ์ผ (์˜์กด์„ฑ ๊ด€๋ฆฌ ํŒŒ์ผ)
  • ์ƒ์„ฑ ์‹œ์ : npm init ํ˜ธ์ถœ ์‹œ์ 
  • ์ผ๋ฐ˜ ์˜์กด์„ฑ๊ณผ ๊ฐœ๋ฐœ ์˜์กด์„ฑ
    • ๊ฐœ๋ฐœ ์˜์กด์„ฑ์€, ์•ฑ์„ ์‹คํ–‰ํ•  ๋•Œ๋Š” ํ•„์š” ์—†์œผ๋‚˜, ๊ฐœ๋ฐœํ•  ๋•Œ ํ•„์š”ํ•œ ํŒจํ‚ค์ง€๋ฅผ ์˜๋ฏธํ•œ๋‹ค.
    • npm install <package_name>: package.json ๋‚ด๋ถ€์˜ dependencies ํ•ญ๋ชฉ์— ํ•ด๋‹น ํŒจํ‚ค์ง€๋ฅผ ๋„ฃ๋Š”๋‹ค. (--save ์˜ต์…˜์ด ๊ธฐ๋ณธ๊ฐ’์ด๋‹ค)
    • npm install --save-dev <package_name>: package.json ๋‚ด๋ถ€์˜ devDependencies ํ•ญ๋ชฉ์— ํ•ด๋‹น ํŒจํ‚ค์ง€๋ฅผ ๋„ฃ๋Š”๋‹ค.
  • ์ด๋ ‡๊ฒŒ ์˜์กด์„ฑ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ €์žฅํ•˜๊ณ  ๋‚˜๋ฉด, ์–ธ์ œ๋“ ์ง€ npm install ๋ช…๋ น์œผ๋กœ ํ•ด๋‹น ํŒจํ‚ค์ง€๋“ค์„ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

ํŒจํ‚ค์ง€ ์„ค์น˜: local vs global

๋กœ์ปฌ ์„ค์น˜:

  • ํŒจํ‚ค์ง€๋ฅผ ๋ช…๋ น์–ด๊ฐ€ ์‹คํ–‰๋œ ๋””๋ ‰ํ† ๋ฆฌ์— ์„ค์น˜ํ•˜๋Š” ๊ฒƒ. ํ”„๋กœ์ ํŠธ ๋ณ„๋กœ ๊ด€๋ฆฌํ•ด์•ผ ํ•˜๋Š” ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๋Š” ๋ฐฉ์‹์ด๋ฉฐ, ์ด๊ฒƒ์ด ๊ธฐ๋ณธ๊ฐ’์ด๋‹ค.

๊ธ€๋กœ๋ฒŒ ์„ค์น˜:

  • system node ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ, usr/lib/node_modules/ ์•ˆ์— ์„ค์น˜ํ•œ๋‹ค.
    • ๋‚ด๊ฐ€ ์‚ฌ์šฉ์ค‘์ธ node ์œ„์น˜๋Š” which node ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ์œ„์—์„œ ๋‚˜์˜จ ๊ฒฝ๋กœ์—์„œ bin์„ lib/node_modules/๋กœ ๋Œ€์ฒดํ•œ ๊ฒฝ๋กœ์— ์„ค์น˜๋œ๋‹ค.
    • ์‹œ์Šคํ…œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํด๋”์™€, nvm ์œผ๋กœ ๊ด€๋ฆฌ๋˜๋Š” ~/.nvm/.../bin/ ํด๋”๊ฐ€ ํ™˜๊ฒฝ๋ณ€์ˆ˜ PATH ์— ์ €์žฅ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์–ด๋””์„œ๋“  ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค.
  • -g ์˜ต์…˜์„ ๋ถ™์—ฌ์•ผ ํ•œ๋‹ค.
  • ์‹œ์Šคํ…œ์— ์ €์žฅํ•˜๋ฏ€๋กœ, ๋ฃจํŠธ ๊ณ„์ •์ด ์•„๋‹ˆ๋ผ๋ฉด sudo ๊ถŒํ•œ์ด ํ•„์š”ํ•˜๋‹ค.
  • node ์•ฑ์—์„œ ๋ฐ”๋กœ require ํ•  ์ˆ˜ ์—†๋‹ค. npm link <package_name>์ด ํ•„์š”ํ•˜๋‹ค.
  • ๋ณดํ†ต cli ์—์„œ ๋ฐ”๋กœ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๊ธ€๋กœ๋ฒŒ ์„ค์น˜๋ฅผ ํ•˜๋Š”๋ฐ, ์•„๋ž˜์˜ ๊ฑธํ”„ ์„ค์น˜์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋“ฏ, package.json ์— script ๋ฅผ ์ž‘์„ฑํ•˜๊ฑฐ๋‚˜, npx <module_name> ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, ์ „์—ญ์„ค์น˜๋Š” ๋ณดํ†ต ๊ถŒ์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค. ์ด๊ฒŒ ์ •๋ง ํ”„๋กœ์ ํŠธ ๋งˆ๋‹ค ๋˜‘๊ฐ™์ด ์ค‘๋ณต๋˜๊ณ , ํ”„๋กœ์ ํŠธ ์˜์กด์„ฑ์œผ๋กœ ๋‹ค๋ฃฐ ํ•„์š”๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ์—๋งŒ ์ „์—ญ์— ์„ค์น˜ํ•˜๋„๋ก ํ•˜์ž.

npm ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋กœ์ปฌ๋กœ ์„ค์น˜ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ๋‚ด ํ”„๋กœ์ ํŠธ ๋””๋ ‰ํ† ๋ฆฌ ์•ˆ์—์„œ npm intall <package_name> ํ•˜๋ฉด ๋œ๋‹ค.

Gulp global? No! npm run gulp.

์™œ gulp ๋ฅผ global, local ์— ์ค‘๋ณต ์„ค์น˜ํ•˜๋Š”๊ฐ€?

โ€” stackoverflow: Why do we need to install gulp globally and locally?

local ์„ค์น˜ ์ด์œ 
  1. gulp version ๊ด€๋ฆฌ
  • script ์—์„œ Node ๊ฐ€ require() ๋กœ gulp ๋ฅผ ๊ฐ€์ ธ์˜ค๊ธฐ ์œ„ํ•ด์„  gulp ๊ฐ€ ๋กœ์ปฌ ๋ชจ๋“ˆ์ด์–ด์•ผ ํ•œ๋‹ค.
    • ์ด๊ฒƒ์€ NODE_PATH ์— global module ์ด ๊ธฐ๋ณธ์ ์œผ๋กœ ๋“ค์–ด์žˆ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ
  • ๋กœ์ปฌ ๋ชจ๋“ˆ์ด ๋” ๋น ๋ฅด๊ฒŒ ๋กœ๋“œ๋˜๊ธฐ ๋•Œ๋ฌธ
global ์„ค์น˜ ์ด์œ 
  1. ์Šคํฌ๋ฆฝํŠธ์—์„œ ๋ฟ ์•„๋‹ˆ๋ผ ์‰˜์—์„œ gulp ๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด์„ , system PATH ์•ˆ์— ํฌํ•จ๋˜์–ด ์žˆ๋Š” ๊ธ€๋กœ๋ฒŒ์— ์„ค์น˜๊ฐ€ ํ•„์š”

global gulp ์—†์ด gulp ์‹คํ–‰ํ•˜๊ธฐ - 1 (script ์„ค์ •)

โ€” codeburst.io: Maybe donโ€™t globally-install that Node.js package

๋ฐฉ๋ฒ•์€, NPM script ๋ฅผ ์ •์˜ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. package.json์— ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ•ญ๋ชฉ์„ ์ถ”๊ฐ€ํ•˜์ž:

...
"scripts": {
  "gulp": "./node_modules/.bin/gulp"
},
...

./node_modules/.bin/gulp ์ด gulp ์‹คํ–‰ ํŒŒ์ผ์ด๋‹ค. ์ด๊ฒƒ์€ ๋งํฌ ํŒŒ์ผ๋กœ, ./node_modules/gulp/bin/gulp.js ๋ฅผ ๋งํฌํ•œ๋‹ค.

์ด์ œ ๋‹ค์Œ ๋ช…๋ น์œผ๋กœ gulp ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

npm run gulp

์ด๊ฒƒ์„ ๋” ๊ฐ„๋‹จํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค. NPM ์€ npm run์„ ์‹คํ–‰ํ•  ๋•Œ, ์ž„์‹œ PATH์— <prj_root>/node_modules/.bin/ ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, gulp ๋งŒ์œผ๋กœ๋„ ์ถฉ๋ถ„ํ•˜๋‹ค.

...
"scripts": {
  "gulp": "gulp"
},
...

์ด ์ž„์‹œ PATH ๋Š”, npm run gulp ๋กœ gulp ์‹คํ–‰ ํ›„ ์ƒ์„ฑ๋˜๋Š” ๋กœ๊ทธ์— ๋“ค์–ด๊ฐ€๋ณด๋ฉด ์•Œ ์ˆ˜ ์žˆ๋‹ค. ๋กœ๊ทธ์˜ ๊ฒฝ๋กœ์™€ ๊ทธ ๋‚ด์šฉ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

/Users/ElohimAwmar/.npm/_logs/2018-12-18T10_37_59_151Z-debug.log
...
8 verbose lifecycle pj2@1.0.0~gulp: PATH: /usr/local/lib/node_modules/npm/bin/node-gyp-bin:/Users/ElohimAwmar/projects/practice/js/pj2/node_modules/.bin:/usr/local/Cellar/pyenv-virtualenv/1.1.0/shims:/usr/local/var/pyenv/shims:/Users/ElohimAwmar/.rbenv/shims:/Users/ElohimAwmar/.rbenv/bin:/Library/Frameworks/Python.framework/Versions/3.6/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/sbin:/Users/ElohimAwmar/bin:/usr/local/bin
...

global gulp ์—†์ด gulp ์‹คํ–‰ํ•˜๊ธฐ - 2 (gulp-cli)

Gulp ๊ฐ€ ๊ธ€๋กœ๋ฒŒ ์„ค์น˜๋ฅผ ์ง€์–‘ํ•˜๊ธฐ ์œ„ํ•ด cli ๊ธฐ๋Šฅ์„ ๋‚ด๋†“์•˜๋‹ค. ์ด๊ฒƒ์€ ๋กœ์ปฌ node_modules ๋ฅผ ์ฐพ์•„์„œ ๊ทธ ์•ˆ์˜ gulp ๋ฅผ ์‹คํ–‰์‹œ์ผœ์ฃผ๋Š” ๊ฒƒ์— ๋ถˆ๊ณผํ•˜๋‹ค.

npm install gulp-cli -g

global gulp ์—†์ด gulp ์‹คํ–‰ํ•˜๊ธฐ - 3 (npx)

2017๋…„ ์ค‘๋ฐ˜, npm ์€ npx ๋ผ๋Š” ํŒจํ‚ค์ง€๋ฅผ ๋ฐฐํฌํ–ˆ๋‹ค. ์ด ํŒจํ‚ค์ง€๋Š” npm ์ด ์„ค์น˜๋  ๋•Œ, ๋ณด์ด์ง€ ์•Š๊ฒŒ ์ „์—ญ์œผ๋กœ ์„ค์น˜๋œ๋‹ค. npx ๋Š” ์ „์—ญ ์„ค์น˜ ์—†์ด ์ „์—ญ์—์„œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ํŒจํ‚ค์ง€์ด๋‹ค. 1๋ฒˆ์—์„œ ํ•œ ๊ฒƒ๊ณผ ๊ฐ™์€ npm run-srcipt ์™€ ๊ฑฐ์˜ ๋น„์Šทํ•˜๊ฒŒ ๋™์ž‘ํ•œ๋‹ค.

gulp ๊ฐ€ ๋กœ์ปฌ ์„ค์น˜๋œ ํ”„๋กœ์ ํŠธ ๋‚ด์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ช…๋ น์ด ๋™์ž‘ํ•œ๋‹ค:

npx gulp

์œ„ ๋ช…๋ น์œผ๋กœ ์‹คํ–‰๋˜๋Š” gulp ๋Š” ./node_modules/.bin/ ์•ˆ์— ์žˆ๋‹ค. ๋งŒ์•ฝ ์—†์œผ๋ฉด, npx ๋Š” ์„ผ์Šค์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด ์„ค์น˜์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•œ๋‹ค.

์ด๊ฒƒ์€ ๋งค์šฐ ๋‹จ์ˆœํ•˜๊ณ  ํšจ๊ณผ์ ์ธ ๋ฐฉ๋ฒ•์ด๋‹ค. ๋‹ค๋งŒ, npx ์™€ ํ•จ๊ป˜ ์ž…๋ ฅ๋˜์–ด์•ผ ํ•˜๋Š” ์ธ์ž๊ฐ’์ด ๋งŽ์•„ ๋ช…๋ น์ด ๊ธธ์–ด์ง„๋‹ค๋ฉด, npx ๋ณด๋‹ค๋Š” npm run-script ๋ฅผ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด ๋” ํšจ์œจ์ ์ผ ์ˆ˜ ์žˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ๋ฅผ ๋ณด์ž:

npx myDataModule -path ./some/dir/file.txt -output ./log/data.log

๋งค๋ฒˆ ์ด ๋ช…๋ น์„ ์ž…๋ ฅํ•˜๋Š” ๊ฒƒ์€ ์—ฌ๋Ÿฌ๋ชจ๋กœ ์ง€ํ˜œ๋กญ์ง€ ์•Š์€ ์ƒ๊ฐ์ด๋‹ค. ๋”ฐ๋ผ์„œ ์ด๋Ÿฐ ๊ฒฝ์šฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ฏธ๋ฆฌ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ ์–ด๋‘๋Š” ๊ฒƒ์ด ํ˜„๋ช…ํ•˜๊ฒ ๋‹ค:

package.json
...
"scripts": {
  "loadData": "myDataModule -path ./some/dir/file.sql -output ./log/data.log"
},
...
npm run loadData

๊ธฐํƒ€ ๋ช…๋ น๋“ค

๋ฒ„์ „ ํ™•์ธ

npm -v

ํŒจํ‚ค์ง€ ์„ค์น˜

npm install <package_name>[@<tag>]

global ์„ค์น˜๋Š” -g ์˜ต์…˜์ด ํ•„์š”ํ•˜๋‹ค.

npm install underscore
npm install underscore@1.8.0  # ๋ฒ„์ „์„ ๋ช…์‹œํ•˜๊ณ  ์‹ถ์„ ๋•Œ
ํŒจํ‚ค์ง€ ์ œ๊ฑฐ

npm uninstall <package_name>

package.json ํŒŒ์ผ์˜ ์˜์กด์„ฑ ์„ค์น˜

npm install

ํŒจํ‚ค์ง€ ์—…๋ฐ์ดํŠธ

npm update <package_name>

ํŒจํ‚ค์ง€ ๊ฒ€์ƒ‰

npm search <package_name>

์ด ๋ช…๋ น์–ด๋Š” ์ฒ˜์Œ ์‚ฌ์šฉํ•  ๋•Œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ต‰์žฅํžˆ ๋งŽ์ด ์žก์•„๋จน๋Š”๋‹ค. ํด๋ผ์šฐ๋“œ ์„œ๋ฒ„์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ, npm package ๊ฒ€์ƒ‰ ์‚ฌ์ดํŠธ์—์„œ ๊ฒ€์ƒ‰ํ•˜์ž.

์‹คํ–‰ ๋ช…๋ น์–ด

์ฐธ์กฐ โ€” zerocho.com: npm ๋ช…๋ น์–ด

npm start

  • package.json ์˜ script ํ•ญ๋ชฉ์— ์ •์˜๋œ start ๋ช…๋ น์œผ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ถ€๋ถ„์ด๋‹ค.
  • ์ด ์„ค์ •์ด ์—†๋‹ค๋ฉด, node server.js ๊ฐ€ ์‹คํ–‰๋œ๋‹ค.
  • ๊ด€๋ จ ๋ช…๋ น์–ด:
    • npm stop: npm start ํ•œ ๊ฒƒ์„ ๋ฉˆ์ถ˜๋‹ค.
    • npm restart: ๋ฉˆ์ท„๋‹ค ์žฌ์‹คํ–‰.

npm test

  • package.json ์˜ test ๋ช…๋ น์–ด ์‹คํ–‰

npm run

  • ๊ทธ ์ด์™ธ์˜ ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰

Yarn

์„ค์น˜

brew install yarn

  • nvm ๊ณผ ๊ฐ™์€ ๋…ธ๋“œ ๋ฒ„์ „ ๊ด€๋ฆฌ์ž๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ
  • node.js ๊ฐ€ ์—†์„ ๊ฒฝ์šฐ ๊ฐ™์ด ์„ค์น˜ํ•ด์ค€๋‹ค.

brew install yarn --without-node

  • nvm ๊ณผ ๊ฐ™์€ ๋…ธ๋“œ ๋ฒ„์ „ ๊ด€๋ฆฌ์ž๋ฅผ ์‚ฌ์šฉํ–ˆ์„ ๊ฒฝ์šฐ

๋ช…๋ น์–ด

๋ฒ„์ „ ํ™•์ธ

yarn --version

์—…๊ทธ๋ ˆ์ด๋“œ

brew upgrade yarn

๊ธฐํƒ€ ๋ช…๋ น์–ด๋Š” ๋‹ค์Œ์„ ์ฐธ์กฐํ•˜์ž โ€” yarn ๊ณต์‹ ๋ฌธ์„œ: ์‚ฌ์šฉ๋ฒ•

Webstorm: Javascript IDE

Jetbrains Webstorm ํ™ˆํŽ˜์ด์ง€

commercial license ์ทจ๋“ํ•˜๊ธฐ
์„ค์น˜ ํ›„ ๋ผ์ด์„ผ์Šค ์ ์šฉํ•˜๊ธฐ