_feature_๋ฅผ ์์ฒญํ๊ฑฐ๋ _bug_๋ฅผ ์ ๊ณ ํ์๊ฒ ์ต๋๊น?
๊ณค์ถฉ
ํ์ฌ ํ๋์ ๋ฌด์์
๋๊น?
์ข
์์ฑ์ ์ค์นํ ๋ ์ธ ๋ฒ์งธ ๋จ๊ณ : linking dependencies
๋ ๋จ์ผ ํจํค์ง์ ๊ฒฝ์ฐ์๋ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฝ๋๋ค.
ํ์ฌ ๋์์ด ๋ฒ๊ทธ ์ธ ๊ฒฝ์ฐ ์ฌํ ๋จ๊ณ๋ฅผ ์ ๊ณตํ์ญ์์ค.
์์๋๋ ๋์์ ๋ฌด์์ ๋๊น?
node.js, yarn ๋ฐ ์ด์ ์ฒด์ ๋ฒ์ ์ ์ธ๊ธํ์ญ์์ค.
๋
ธ๋ : 6.7.0
์ด์์ฒด์ : Windows 10
๋๋ Windows 10์ https://github.com/macdja38/pvpsite/blob/master/package.json ์ ์ฌ์ฉํ์ฌ ์ฐ๊ฒฐ ์ข ์์ฑ์ด 200 ์ด ์ด์ ๊ฑธ๋ฆฌ๊ณ ๊ด์ฐฎ์ i7์ด์๋ SSD๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์ฑ๋ฅ ๋ฌธ์ ๋ Windows Defender๋ก ์ธํด ๋ฐ์ํ ์ ์์ต๋๋ค.
๋ณด์์ ์ค์ด๋ ๊ฒ๋ณด๋ค ๋ ๋์ ํด๊ฒฐ์ฑ ์ด ์์ด์ผํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ผ๋ถ ๋ค๋ฅธ ์ฌ์ฉ์๋ ํ๋ก์ ํธ์ ๋ฃจํธ ๋๋ ํ ๋ฆฌ์์ ๋นํ์ฑํํ๋ฉด ์๋ํ๋ค๊ณ ํ์ธํ์ง๋ง Windows Defender๊ฐ ๊ทธ๋ ๊ฒํ๋ ค๊ณ ํ ๋ ์ฝ๊ฐ ์์๋์์ผ๋ฏ๋ก ํ์ธํ ์ ์์ต๋๋ค.
์ฝ 30 ๊ฐ์ ์ข
์์ฑ์ด์๋ git repo์ ๊ด๋ จํ์ฌ ๋์ผํ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
์๋์ฐ 10
๋
ธ๋ v5.5.0
์์ฌ 0.16.1
Windows Defender๋ฅผ ๋นํ์ฑํํ๋ฉด ์ฐ๊ฒฐ ์๊ฐ์ด ํฌ๊ฒ ๋จ์ถ๋์์ต๋๋ค.
์๋ง๋์ด PR ๋ก "ํด๊ฒฐ"๋์ด์ผํฉ๋๊น?
์, ์ํ๊น๊ฒ๋ ์ฌ๊ธฐ์ ํ ์์๋ ์ผ์ด ๋ง์ง ์์ต๋๋ค. (๋ฐ์ด๋ฌ์ค ์ค์บ๋๋ ๋ชจ๋ ํ์ผ์ ์ค์บํ๊ณ npm ์์ฝ ์์คํ ์๋ ๋ง์ ์์ ํ์ผ์ด ์์ต๋๋ค. ์์ ํ์ผ์ ์ผ๋ฐ์ ์ผ๋ก EXT4 ๋๋ ZFS์ ๊ฐ์ ๋ค๋ฅธ ํ์ผ ์์คํ ์ ๋นํด NTFS์์ ์ฝ๊ฐ ๋ ๋ง์ ์ค๋ฒ ํค๋๋ฅผ๊ฐ์ง๋๋ค. ํ์ง๋ง ๋ฐ์ด๋ฌ์ค ์ค์บ๋์ ์ํด ์ ํ๋ฉ๋๋ค.
๊ทธ๋ ๊ธดํด๋ Yarn์ npm๋ณด๋ค _ ์ฌ์ ํ _ ๋นจ๋ผ์ผํฉ๋๋ค. Linux ๋ Mac์์๋งํผ ๋น ๋ฅด์ง๋ ์์ ๊ฒ์ ๋๋ค.
๋ฐ์ด๋ฌ์ค ๋ฐฑ์ ์ค์บ๋๋ฅผ ์ค์นํ์ง ์๊ณ Mac์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ฐ๋จํ angular-js ์ฑ์ผ๋ก๋ ์๋นํ ์๊ฐ์ด ๊ฑธ๋ฆฌ๋ ์ฐ๊ฒฐ์ ๋์ผํ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
๋๋์ด ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์ฐ๋ถํฌ์์๋ 174 ์ด๊ฐ ๊ฑธ๋ ธ์ต๋๋ค.
์ด ๋ฌธ์ ๋ 0.17.8
์์ 0.17.19
์
๊ทธ๋ ์ด๋ ํ ํ์ ๋ง โโ๋ฐ์ํ์ต๋๋ค. ๋ฐ์ด๋ฌ์ค ๋ฐฑ์ ์ด์๋ Mac.
์ด์ํ ์ ์ ํจํค์ง๋ฅผ ์ญ์ ํ ๋๋ง๋ค ๋งํฌ ํ๋ก์ธ์ค๋ฅผ ๋์ ธ์ผํ๋ค๋ ๊ฒ์ ๋๋ค. Npm์ ๋ ๋น ๋ฅด๊ฒํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฐ๊ฒฐํ๋ ๋ฐ๋ ์๊ฐ์ด ๋ง์ด ๊ฑธ๋ฆฝ๋๋ค.
์ด package.json (Heroku์์)์ผ๋ก ์ฌํ ํ ์ ์์ต๋๋ค.
{
"name": "yarn-link-slowness",
"version": "0.1.0",
"private": true,
"dependencies": {
"axios": "^0.15.3",
"lodash": "^4.17.2",
"react": "^15.4.1",
"react-dom": "^15.4.1",
"react-player": "^0.12.1",
"react-redux": "^4.4.6",
"react-router": "^3.0.0",
"react-router-redux": "^4.0.7",
"react-scripts": "^0.8.4",
"redux": "^3.6.0",
"redux-auth-wrapper": "^0.9.0",
"redux-logger": "^2.7.4",
"redux-promise-middleware": "^4.2.0",
"redux-thunk": "^2.1.0"
},
"engines": {
"node": "7.2.1",
"yarn": "0.17.8"
}
}
์ค 0.17.8์ ์ฌ์ฉํ๋ฉด ์ค์น์ 37 ์ด๊ฐ ๊ฑธ๋ฆฝ๋๋ค. ์ค 0.17.10์ ์ฌ์ฉํ๋ฉด ์ค์น์ 97 ์ด๊ฐ ๊ฑธ๋ฆฝ๋๋ค. ๋ค๋ฅธ ๋ณ๊ฒฝ ์ฌํญ์ ์์ต๋๋ค (๋งค๋ฒ ์๋ก์ด Heroku ์ฑ).
โจ 45.10s ํ์ ์๋ฃ๋์์ต๋๋ค.
"autoprefixer": "6.3.6",
"babel-core": "6.7.6",
"babel-jest": "13.0.0",
"babel-loader": "6.2.4",
"babel-plugin-transform-class-properties": "6.9.1",
"babel-plugin-transform-object-rest-spread": "6.8.0",
"babel-preset-es2015": "6.6.0",
"babel-preset-react": "6.5.0",
"bluebird": "3.3.5",
"cardmask": "github:aj0strow/cardmask#v1.0.0",
"chai": "3.5.0",
"classnames": "2.2.5",
"copy-webpack-plugin": "2.1.3",
"core-js": "2.4.1",
"css-loader": "0.23.1",
"enzyme": "2.3.0",
"file-loader": "0.8.5",
"force-case-sensitivity-webpack-plugin": "0.1.1",
"jest": "13.0.0",
"jest-cli": "13.0.0",
"json-loader": "0.5.4",
"lodash": "4.11.1",
"moment": "2.13.0",
"ms": "0.7.1",
"node-sass": "3.4.2",
"postcss-loader": "0.9.1",
"raw-loader": "0.5.1",
"react": "15.2.0",
"react-addons-css-transition-group": "15.2.0",
"react-addons-test-utils": "15.2.0",
"react-css-transition-replace": "2.0.1",
"react-dom": "15.0.1",
"react-redux": "4.4.5",
"react-router": "2.3.0",
"react-textarea-autosize": "4.0.3",
"recompose": "0.20.2",
"redux": "3.5.1",
"redux-actions": "0.10.0",
"redux-thunk": "2.0.1",
"reselect": "2.5.3",
"sass-loader": "3.2.0",
"sinon": "1.17.4",
"style-loader": "0.13.1",
"webpack": "1.13.0",
"webpack-dev-server": "1.14.1",
"whatwg-fetch": "1.0.0",
"zxcvbn": "4.3.0"
"์ข
์์ฑ ์ฐ๊ฒฐ"๋จ๊ณ์์ ์์ด ์ํํ๋ ์์
์ ์ ํํ ์ค๋ช
ํด ์ฃผ์๊ฒ ์ต๋๊น?
์ด ๋จ๊ณ์ ์ต๋ ์๋ ๋ค๋ฅธ ์ปดํจํฐ์ ๋์ผํ ํ๋ก์ ํธ์ ๋ํด ~ 1000์์ ~ 65000๊น์ง ๋ค์ํ๊ธฐ ๋๋ฌธ์
๋๋ค. ์ด ์ซ์๋ ๋ฌด์์ ์๋ฏธํฉ๋๊น?
์ด ๋ฌธ์ ๋ ์์ต๋๋ค. yarn add
๋ก ์ข
์์ฑ์ ์ถ๊ฐํ๋ฉด "์ข
์์ฑ ์ฐ๊ฒฐ"์ด ํธ๋ฆฌ๊ฑฐ๋๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๋ฉฐ ์์ํ ๊ฑธ๋ฆฝ๋๋ค. ์ง๊ธ์ npm์ผ๋ก ๋ค์ ์ ํํด์ผํ์ต๋๋ค.
๋
ธ๋ : 6.9.2
์ด์์ฒด์ : Windows 10
๋
ธ๋ : 7.3.0
์ด์์ฒด์ : Windows 10 64
๋๋ ๋ง์ฐฌ๊ฐ์ง
์ฌ๊ธฐ๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค. ๋งํฌ 23420 ... ๋ญ๊ฐ, ์ข์ ๋ ์ ์ฝ 1 ๋ถ 30 ์ด๊ฐ ๊ฑธ๋ฆฝ๋๋ค.
์์ฌ 0.19.1
NodeJS 7.3.0
์๋์ฐ 10
yarn add moment
์๋ 105 ์ด๊ฐ ๊ฑธ๋ฆฝ๋๋ค. ์ข
์์ฑ์ด ์์ต๋๋ค. : /
ํธ์ง : Windows Defender๋ฅผ ๋๋ฉด ์๊ฐ์ด 30 ~ 50 ์ด๋ก ๋จ์ถ๋ฉ๋๋ค. ์์ ์ค์ธ ๋๋ ํ ๋ฆฌ๋ฅผ ์ ์ธํ๋ ค๊ณ ํ์ง๋ง ๋์์ด๋์ง ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋ฐฉ๊ธ create-react-app์ ์ ๋ณต์ฌ๋ณธ์ ์คํํ๋๋ฐ 876.37 ์ด๊ฐ ๊ฑธ๋ ธ์ต๋๋ค. ๋ฐ์ด๋ฌ์ค ๋ฐฑ์ ์๋ ๋ฐฉ์์ ๋ํ ํต์ ๊ถ์ด ๋ง์ง ์์ง๋ง Windows์์ NPM ๋ฐ CRA์ ๋ํ ๊ฒฝํ์ด ํจ์ฌ ๋น ๋ฅด๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค.
Windows 10์์๋ Ubuntu bash ์ ธ์ ์ผ๋ฐ์ ์ธ ์กฐ์ธ์ผ๋ก ์ฌ์ฉํ์ญ์์ค.
Windows 10์์๋ Ubuntu bash ์ ธ์ ์ผ๋ฐ์ ์ธ ์กฐ์ธ์ผ๋ก ์ฌ์ฉํ์ญ์์ค.
Linux ์ฉ Windows ํ์ ์์คํ ์์ ๋์คํฌ I / O๊ฐ ๋งค์ฐ ๋๋ฆฝ๋๋ค. ํ์ฌ ์๋ ค์ง ์ ํ ์ฌํญ์ ๋๋ค.
๊ทธ๋ฌ๋ NPM ๋ฐ CRA์ ๋ํ ๋์ ๊ฒฝํ์ Windows์์ ํจ์ฌ ๋ ๋นจ๋์ต๋๋ค.
@JeffBaumgardt- ํฅ๋ฏธ
@ Daniel15 ์๋ง ๊ทธ๋์ผ ํ์ง๋ง ๊ทธ๋ ์ง ์์ต๋๋ค. ๋
ธ๋ ์ค์น ๋ฐ ์ค์น ์ ๊ฑฐ๋ ์ ์๊ฒ ๋ ์ ์์ต๋๋ค. ๊ทธ๋์ ์ ๋ npm add <packages> --save-dev
ํ๊ณ yarn.lock์ ์ญ์ ํ๊ณ yarn์ ์คํํ๋ฉด yarn add <packages> -D
๋ฅผ ํ ๋ฒ ์คํํ๋ ๊ฒ๋ณด๋ค ๋น ๋ฆ
๋๋ค. ์ด์ ๋ชจ๋ ์ฌ๋์ด ์ค์ ๊ฟฐ๊ณ ์๋ค๋ ๊ฒ์ ๋ชจ์๋ผ. ๋ฌผ๋ก ๋๋ ์๋ฌผ์ ๋ฅผ ์ญ์ ํ๊ณ ๋ชจ๋๊ฐ ๋ฒ๋ค์ ์
๊ทธ๋ ์ด๋ํ๋๋ก ๊ฐ์ํ๊ณ ์ถ์ง๋ ์์ต๋๋ค. ๋์ ๋ค์์ ํ๋ฅญํ์ต๋๋ค.
cc @echobnet
์ฒซ ๋ฒ์งธ ํด๋ฆญ ์ค์
์ ์ธ ํญ๋ชฉ๊น์ง ์๋๋ก ์คํฌ๋กค
yarn cache dir
๋ฅผ ์คํํ์ฌ ์บ์ ํด๋์ ์์น๋ฅผ โโ๊ฐ์ ธ์ต๋๋ค.
๋ฐ์ ํ๋ก์ ํธ ์๋ ํฅ์ x 3-10
@SleeplessByte ๋๋ ์ ์ธ ๋ ํ๋ก์ธ์ค์ yarn
๋ฐ node
๋ฅผ ์ถ๊ฐ ํ ์ ์์ต๋๋ค.
์ฐฝ๋ฌธ์ ๋ฌธ์ ๊ฐ ์๋๋๋ค. Mac Pro์์ ๋์ฐํ ๋งํฌ ์๊ฐ์ ๋ณด์์ต๋๋ค.
์ด์์ฒด์ : OS X 10.11.6 (El Capitan)
๋
ธ๋ : 7.6.0
ํธ์ค : 0.20.3
Mac 10.12.3์์๋ _ ๋งค์ฐ ๋๋ฆฌ๋ค๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค. ์ฐฝ๋ฌธ๊ณผ ๊ด๋ จ์ด ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ด ์ค์ ์ด์ด ์ค๋ ๋์ ๋ค๋ฅธ ์ค์ ๋ณด๋ค ๋๋ฆฌ๊ฒ ๋ณด์
๋๋ค. yarn์ ๋๋๋ก ์๊ท๋ชจ ํ๋ก์ ํธ์์ ์ฝ 600.000 ๊ฐ์ ํ์ผ์ ์ฐ๊ฒฐํ๋ ค๊ณ ํฉ๋๋ค. 30 ๋ถ ์ด์ ๊ฑธ๋ฆด ์ ์์ต๋๋ค. ๋๋ ํ์ฌ ๊นจ๋ํ ์บ์์ ์ผ๊ฐ (v0.22.0-20170226.1626)์ผ๋ก ์๋ํฉ๋๋ค. ํน์ ๋ฒ์ ํจํค์ง์ ๋ํด ๊ณต์ ๋ ์ง์คํธ๋ฆฌ์ ์ฌ์ฉ์ ์ง์ ๊ฐ์ธ ๋ ์ง์คํธ๋ฆฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋๋ฃ๋ค์์ด ๋ฌธ์ ๋ก ๊ณ ํต๋ฐ์ง ์์ผ๋ฏ๋ก ์ฌ์ฉ์ ์ง์ ๊ฐ์ธ ๋ ์ง์คํธ๋ฆฌ๊ฐ ๋ฌธ์ ๋ผ๊ณ ์๊ฐํ์ง ์์ต๋๋ค (์ด์จ๋ ํจํค์ง ๊ฐ์ ธ ์ค๊ธฐ๋ ์ด๋ฏธ ์๋ฃ๋์์ต๋๋ค). ๋ํ package.json
path:
ํ๋กํ ์ฝ์ ์ฌ์ฉํ๋ ๊ด๋ จ ํ์ผ๋ ์์ต๋๋ค.
https://github.com/google/material-design-icons ๋ฅผ ์ค์นํ๋ ๋ฐ ๋ง์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. _ ์์ ํ์ผ์ด ๋ง์ _ ๋ค๋ฅธ ์ฌ๋๋ค์๊ฒ๋ ๋ฒ๊ฑฐ๋ก์ด ๊ฒ ๊ฐ์ต๋๋ค (https://github.com/google/ material-design-icons / issues / 518). ๋ด ํ๋์จ์ด๊ฐ ๋ง์ ์์ ํ์ผ ๋๋ ์ด์ ์ ์ฌํ ๊ฒ์ ์ฒ๋ฆฌํ๋ ๋ฐ ๋ฌธ์ ๊ฐ ์๋์ง ๋๋ ์ด๊ฒ์ด ์ ํ ๊ด๋ จ์ด ์๋์ง ์ ์ ์์ต๋๋ค. ๋ค์ ์ ๋๋ฃ๋ค์ https://github.com/google/material-design-icons ์ค์น์
์ต์ ์ ๋ณด
์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค ... file:
ํจํค์ง๋ฅผ ์ค์นํ๋ ๊ฒ๊ณผ ๋น์ทํด ๋ณด์
๋๋ค. node_modules/
๋ฐ ๊ธฐํ ํญ๋ชฉ์ด ํฌํจ ๋ ์บ์์ ๋ชจ๋์ด ์ ์ฅ๋ฉ๋๋ค. ๋ชจ๋ ์์ ์ node_modules/
ํฌํจํ๋ ์ฌ๋ฌ ์์ ๊ฐ์๋ ๊ฒฝ์ฐ ์ด๊ฒ์ _ ์ ๋ง _ ๋ฌธ์ ์
๋๋ค. file:
์ค์น์ ๋ํด .npmignore
๋ฑ์ด ๋ฌด์๋๋ ๊ฒ ๊ฐ์ต๋๋ค. ํด๊ฒฐ์ฑ
์ด ๋ก์ปฌ๋ก ํด๊ฒฐ ๋ ํ์ผ์ ์ ํ ์บ์ํ์ง ์๋ ๊ฒฝ์ฐ https://github.com/yarnpkg/yarn/issues/2165๋ก ์์ฝ๋ฉ๋๋ค. ๋ด ์บ์ (์ด ๊ฒฝ์ฐ $ yarn cache dir
๋ชจ๋)๊ณผ ๋ชจ์์ ์ ๊ณณ์ผ๋ก ์ค์น file:
์ ๊ทธ๋ค์ด ํฌํจ node_modules
๋๋ ํ ๋ฆฌ ๋๋ ๋ค๋ฅธ ํฐ ๋๋ ํ ๋ฆฌ๋ฅผ, ๋๋ ์๋๋ฅผ ๋์ผ ์ ์์ต๋๋ค linking phase
์ด๋ฌํ ๋๋ ํ ๋ฆฌ๋ฅผ ์๋์ผ๋ก ์ ๊ฑฐํ์ฌ
[3/4] Linking dependencies...
Done in 947.71s.
yarn add ...
์ ํจํค์ง๋ฅผ ์ถ๊ฐํ๋ ค๋ฉด์ด ์๊ฐ์ ๊ธฐ๋ค๋ ค์ผํ์ต๋๋ค.
Win7 / w ์์ฌ v0.21.3
๋ด ์ฑ์ material-design-icons
ํจํค์ง๊ฐ ์์ต๋๋ค.
๋๋ ์ด๊ฒ์ด ๊ด๋ จ์ด ์๋ค๊ณ ์๊ฐํ๋ค https://github.com/yarnpkg/yarn/issues/990
@kuncevich ๋ชจ๋ ๊ฒ์ด ๋ด ์ชฝ์์ ์ ์๋ํฉ๋๋ค. ๋ฐํ์ ๋์ ์์ ์์ ๊ด๋ฆฌ์๋ฅผ ์ถ๊ฐํ์ญ์์ค
@kuncevic Windows์์ ์ฐพ์ ๋ฒ๊ทธ์ ์ํฅ์๋ฐ์ ์ ์์ต๋๋ค. https://github.com/yarnpkg/yarn/pull/2958
๋ณธ์ง์ ์ผ๋ก yarn์ ํญ์ ๋ชจ๋ ์์
์ ๋ํด node_modules
๋ชจ๋ ํ์ผ์ ๋ณต์ฌ ํ ์ ์์ต๋๋ค.
@asolopovas ์ ๊ฒฝ์ฐ์๋ node.exe
์ฒ๋ผ 10-26 %
node.exe
10-26 %
.
๋ด AV๋ ์์ ํ ๊บผ๋ ๋ฌธ์ ๊ฐ๋์ง ์์ต๋๋ค. ์ค ์๋ ํฅ์์ ๋ณผ ์ ์์ต๋๋ค.
๋
ธ๋ -v 6.9.2
@kuncevic ์ ๋ ธ๋๋ฅผ 7๋ก ์ ๋ฐ์ดํธํ๊ณ ์์ ์๋๊ฐ ๋นจ๋ผ์ง๋์ง ํ์ธํ์ญ์์ค. ๊ทธ๋ ์ง ์์ผ๋ฉด @vbfox ๊ฐ ์ฌ๋ฐ๋ฅธ ๋ฐฉํฅ์ ๊ฐ๋ฆฌํค๊ณ ์์ต๋๋ค.
๋ณธ์ง์ ์ผ๋ก yarn์ ํญ์ ๋ชจ๋ ์์ ์ ๋ํด node_modules์ ๋ชจ๋ ํ์ผ์ ๋ณต์ฌ ํ ์ ์์ต๋๋ค.
@vbfox ์ด์ ์ ๋ํด ์์ธํ ์ค๋ช ํด ์ฃผ์๊ฒ ์ต๋๊น? ๋๋ yarn์ ์์ธํ ์ถ๋ ฅ์๋ณด๊ณ ๊ฑฐ์ ๋ชจ๋ ์๊ฐ์ด ๋๋ ํ ๋ฆฌ๋ฅผ ๋ง๋ค๊ณ ํ์ผ์ ๋ณต์ฌํ๋ ๋ฐ ์๋น๋๋ค๋ ๊ฒ์ ๋ฐ๊ฒฌํ์ต๋๋ค. ๊ฐ _package_์ ๋ํ ๋๋ ํ ๋ฆฌ๋ฅผ ๋ง๋ ๋ค์ ๋ณต์ฌํ๋ ๊ฒ๋ณด๋ค ์ ์ฒด ํจํค์ง๋ ์๋นํ ๋น ๋ฅด๊ฑฐ๋ ๋ค์ ๋ ๋น ๋ฅผ ์์๋ ๋ชจ๋ ํจํค์ง๋ฅผ ์ฌ๋ณผ๋ฆญ ๋งํฌ ํ ์๋ ์์ต๋๋ค. ์ด๊ฒ๋ค์ ์์ ํ์ง ์์ต๋๊น?
@danpalmer ์ฐ๊ฒฐ ๋จ๊ณ๋ ๊ธฐ๋ณธ์ ์ผ๋ก 3 ๋จ๊ณ๋ก ์๋ํฉ๋๋ค.
node_modules
์ ์์ด์ผํ๋ ๋ชจ๋ ํ์ผ ์ฐพ๊ธฐnode_modules
๋ก ๋ณต์ฌํด์ผ ํ ํญ๋ชฉ์ ์ฐพ์ต๋๋ค.libuv / nodejs ๋ฒ๊ทธ๋ก ์ธํด ( utime
๋ yarn์์ ์ฌ์ฉํ๊ณ ๋ฒ๊ทธ๋ ๋ฐ๋ฆฌ ์ด๋ฅผ 0์ผ๋ก ์ค์ ํ๋ค๋ ๊ฒ์
๋๋ค) ์ด์ ์คํ์์ yarn์ด ๋ณต์ฌ ํ ํ์ผ์ ํญ์ ๋ค๋ฅธ ๊ฒ์ผ๋ก ํ์ธ๋ฉ๋๋ค (์บ์์ ๋ฒ์ ์๋ ์ ์์ ์ธ ์์ ์๊ฐ์ด์ง๋ง node_modules์ ๋ชจ๋ ํ์ผ์ ๋ฐ๋ฆฌ ์ด ๋์ 0 ๋ฒ์ ์ ๊ฐ์ง) 2 ๋จ๊ณ๋ ํญ์ ๋ชจ๋ ๊ฒ์ด ๋ณ๊ฒฝ๋์๋ค๊ณ ๋ณด๊ณ ํฉ๋๋ค.
๋
ธ๋ 7.1์์ ๋ฒ๊ทธ๊ฐ ์์ ๋์์ผ๋ฏ๋ก LTS์ ๊ตญํ๋์ง ์์ ๊ฒฝ์ฐ ์์ ํ๊ธฐ๊ฐ ๋งค์ฐ ์ฝ์ต๋๋ค (ํ์ผ์ด utime
๋ก ์์ฑ ๋์๊ธฐ ๋๋ฌธ์ ์ ์ฅ์์์ ์ฒซ ๋ฒ์งธ ์ ์์
์ด ๋๋ ค์ง ์ ์์ง๋ง ๋ค์์ ๋ชจ๋ ํจ์ฌ ๋น ๋ฆ). ๋ด PR์ ๋ณธ์ง์ ์ผ๋ก ๋น๊ตํ ๋ Windows์์ ํ์ผ ์๊ฐ์ ๋ฐ๋ฆฌ ์ด ๋ถ๋ถ์ ๋ฌด์ํ์ฌ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค.
์ ์ฒด ํจํค์ง ๋ณต์ฌ์ ๊ด๋ จํ์ฌ ํ์ฌ ํ์ผ ์์คํ
AFAIK์ ์กด์ฌํ๋ ์์
์ ๋ชจ๋ ํ์ผ ์์ค์์ ์๋ํฉ๋๋ค.
์ ๊ณตํ๋ ๊ฐ์ฅ ์ข์ ์ฐฝ์ FileCopy API์
๋๋ค (Yarn์์ ์ฌ์ฉํ PR์ด ์์ต๋๋ค : https://github.com/yarnpkg/yarn/pull/2960). ๊ธฐ๋ณธ nodejs ์คํธ๋ฆผ API๋ฅผ ์ฌ์ฉํ๋ ๊ฒ๋ณด๋ค ์กฐ๊ธ ๋ ๋น ๋ฆ
๋๋ค.
์ฌ๋ณผ๋ฆญ ๋งํฌ๋ ์ ์๋ฃ๋์ง ์์๋์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ์ ๋ ์๋ฐ ์คํฌ๋ฆฝํธ ํจํค์ง ๊ด๋ฆฌ์์ ๋ํด ์ถฉ๋ถํ ์์ง ๋ชปํฉ๋๋ค (ํ ์คํธ ํด๋ ์ ๊ฑฐ์ ๊ฐ์ ํจํค์ง ํ์ผ์ ๋ช ๊ฐ์ง ์์ ์ด ์ด๋ฃจ์ด ์ง์ง๋ง ๊ฐ๋ณ ํ์ผ์ ์ฌ๋ณผ๋ฆญ ๋งํฌํด๋ ๊ทธ๋ ๊ฒ ๋ฌ๋ผ์ง์ง๋ ์์ต๋๋ค) ๊ทธ๋ฌ๋ linux / macos (์๋์ฐ๋ณด๋ค ํจ์ฌ ๋ ํํจ)์์๋ ๋ง์ฐฌ๊ฐ์ง์ด๊ธฐ ๋๋ฌธ์ ๊ทธ๋ด๋ง ํ ์ด์ ๊ฐ์์ ์ ์์ต๋๋ค.
Node 7.8.0
๋ก ์
๊ทธ๋ ์ด๋ ํ ๋ด ์คํ : https://github.com/yarnpkg/yarn/issues/990#issuecomment -290288375
1. Find every file that need to be in node_modules
2. Check this list versus what is already there and find what need to be copied around from cache to node_modules
3. Do the copy
๋๋ถ๋ถ์ ๊ฒฝ์ฐ ์ฌ๋๋ค์ด ๋ธ๋์น ๊ฐ์ ์ ํ ํ ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ค์ ์ฐ๊ฒฐํ๋ค๋ ์ ์ ๊ณ ๋ คํ๋ฉด ๋ ๋์ ๋ฐฉ๋ฒ์ด ์์๊น์?
node_modules
์ ๊ฐ ๋น๋์ ๋ํด ๊ณ ์ ํ ID๋ฅผ ๋ง๋ ๋ค์ ์บ์์์ ์ ์ฒด ๋๋ ํ ๋ฆฌ๋ฅผ ์ฌ๋ณผ๋ฆญ ๋งํฌ ํ ์ ์์ต๋๊น? ์ด๋ฐ ์์ผ๋ก ๋ถ๊ธฐ๋ฅผ ์๋ค๋ก ์ ํํ๋ ๊ฒ์ ์ค์ ๋ก ๋ค๋ฅธ node_modules
์ฌ๋ณผ๋ฆญ ๋งํฌ์
๋๋ค.
๋น์ฐํ, ๋น์ ์ด ์คํํ๋ node_modules
์ ๋ชจ๋ ๋ฒ์ ์ ์บ์ฑํ๊ธฐ ๋๋ฌธ์ ๋์คํฌ์ ๋ง์ ๊ฒ์ ์ธ ๊ฒ์
๋๋ค. ๊ทธ๋ฌ๋ ๋๋ ํ ๋ฆฌ์ ๋ํ ์ฌ๋ณผ๋ฆญ ๋งํฌ์ ๋ํ ์ต์ ํ๊ฐ์์ ์ ์์ต๋๋ค. ์ฌ๋ณผ๋ฆญ ๋งํฌ ํธ๋ฆฌ ์ ์ฅ?
์์งํ ๊ฒ์ ๋ํด ์ฉ์ํ์ญ์์ค. ์ ๋ ์ ๋์ค ๋ฐ ์ฌ์ง์ด Windows ํ์ผ ์์คํ ์ ๊ดํด์๋ ๊ฐ์ฅ ๊ต์ก์ ๋ง์ด๋ฐ์ง๋ ๋ชปํ์ง๋ง ๊ต์ก์ ์ธ ์ฐ์ต์ผ๋ก ์ด๊ฒ์ ํํค์ณ ์ ์ด๋ค ์ ์ผ๋ก๋ ๋ถ๋ช ํ ๊ฒฐํจ์ด์๋ ๊ฒฝ์ฐ์ด ์์ด๋์ด์ ๊ฐ๋ ์ฆ๋ช .
์ ๋ ์ค๋ก ์ฑ์ ๋ง๋๋ ๋ฐ ์ค๋ ์๊ฐ์ด ๊ฑธ๋ ธ์ต๋๋ค.
์๋์ฐ ์๋ฒ 2012
๋
ธ๋ 7.9.0
์์ฌ 0.22
554.08 ์ด์ ์๋ฃ๋์์ต๋๋ค.
๊ทธ๋ฌ๋ ๋ค๋ฅธ ๊ฒฝ์ฐ์๋ React ์ค์น๊ฐ ํฌํจ๋์ด ์์ง ์์ผ๋ฉด ํจ์ฌ ๋น ๋ฆ ๋๋ค.
์ต๊ทผ ์ฐ๊ฒฐ ์๊ฐ์ด ๊ธธ์ง ์์ต๋๋ค. ๋ฌ๋ฆฌ๋
์์ฌ- v0.23.2
๋
ธ๋- 6.10.2
๋๋ 7.9.10
(nvm์ ์ฌ์ฉํ์ฌ ์ ํ)
Mac ๋ฐ archlinux (Manjaro)์์ ์ด๊ฒ์ ์๋ํ์ต๋๋ค.
Windows Defender ์ ์ธ์ ๋ ธ๋์ ์ค์ ์ถ๊ฐํ๋ฉด Windows ์ปดํจํฐ์์ ์ฐ๊ฒฐ ์๊ฐ์ด ์ฝ 60 % ๋จ์ถ๋์์์ ํ์ธํ ์ ์์ต๋๋ค.
+1
[3/4] Linking dependencies...
[4/4] Building fresh packages...
success Saved lockfile.
Done in 180.22s.
7.9.0 ๋ ธ๋๋ก ์ ํํด๋ ์๋๊ฐ ๋นจ๋ผ์ง์ง ์์์ต๋๋ค. Windows Defender์ 'yarn', 'node'๋ฐ 'npm'์ ์ถ๊ฐํ๋ฉด (.exe ํ์ฅ์ด ์๊ฑฐ๋์๋, ๋ฌด์์ด ํ์ํ์ง ํ์คํ์ง ์์) ์๋๊ฐ 3 ๋ฐฐ ๋นจ๋ผ์ก์ง๋ง npm ์ค์น๋ณด๋ค 50 % ๋ ๊ธธ์์ต๋๋ค.
๋ํ ๋ ธ๋์์ ์คํ์ค์ธ ๋ชจ๋ ํญ๋ชฉ์ด๋ ์ค์น์ค์ธ ํจํค์ง์์ ๋ชจ๋ ๋ณดํธ๋ฅผ ์ ๊ฑฐํ๋ ๊ฒ์ ๋์๊ฒ ์ข์ ์๊ฐ์ด ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋ด ๊ฒฝํ ์ถ๊ฐ-node.exe / yarn.exe๋ฅผ Windows ๋ฐฉ์ด์์ ์์ธ ๋ชฉ๋ก์ ์ถ๊ฐํ๋ฉด ์ ์ค์น ์๊ฐ์ด ์ ๋ฐ์ผ๋ก ๋จ์ถ๋์์ต๋๋ค (60 ์ด์์ 30 ์ด๋ก).
๋๋ ์ด๊ฒ๋๋ณด๊ณ ์๋๋ฐ, ๋จ์ผ ํจํค์ง๋ฅผ ์ ๋ฐ์ดํธํ๋ ๋ฐ ๋๋ฌด ์ค๋ ๊ฑธ๋ฆฌ๊ธฐ ๋๋ฌธ์ ํจํค์ง๋ฅผ ๊ฐ๋ฐํ๋ ๋์ ๋น ๋ฅด๊ฒ ๋ฐ๋ณตํ๋ ๊ฒ์ด ๋ต๋ตํฉ๋๋ค.
yarn install v0.24.5
[1/4] Resolving packages...
[2/4] Fetching packages...
warning [email protected]: The platform "linux" is incompatible with this module.
info "[email protected]" is an optional dependency and failed compatibility check. Excluding it from installation.
[3/4] Linking dependencies...
[4/4] Building fresh packages...
Done in 338.20s.
Distributor ID: Ubuntu
Description: Ubuntu 14.04.5 LTS
Release: 14.04
Codename: trusty
"dependencies": {
"autoprefixer": "^6.7.7",
"axios": "^0.16.1",
"babel-core": "^6.24.1",
"babel-loader": "7.x",
"babel-preset-env": "^1.4.0",
"coffee-loader": "^0.7.3",
"coffee-script": "^1.12.5",
"compression-webpack-plugin": "^0.4.0",
"css-loader": "^0.28.0",
"element-ui": "^1.3.3",
"extract-text-webpack-plugin": "^2.1.0",
"file-loader": "^0.11.1",
"glob": "^7.1.1",
"js-yaml": "^3.8.3",
"node-sass": "^4.5.2",
"path-complete-extname": "^0.1.0",
"postcss-loader": "^1.3.3",
"postcss-smart-import": "^0.6.12",
"precss": "^1.4.0",
"rails-erb-loader": "^5.0.0",
"rails-ujs": "^5.1.0",
"sass-loader": "^6.0.3",
"style-loader": "^0.16.1",
"turbolinks": "^5.0.3",
"vue": "^2.3.0",
"vue-loader": "^12.0.2",
"vue-router": "^2.5.3",
"vue-template-compiler": "^2.3.0",
"webpack": "^2.4.1",
"webpack-manifest-plugin": "^1.1.0",
"webpack-merge": "^4.1.0"
},
"devDependencies": {
"element-theme": "*",
"element-theme-default": "^1.3.3",
"eslint": "^3.19.0",
"eslint-config-airbnb": "^14.1.0",
"eslint-plugin-import": "^2.2.0",
"eslint-plugin-jsx-a11y": "^4.0.0",
"eslint-plugin-react": "^6.9.0",
"nodemon": "^1.11.0",
"webpack-dev-server": "^2.4.5"
}
:(
yarn 0.24.5, node 7.10.0 ๋ฐ npm 4.2.0์ ์ฌ์ฉํ์ฌ Mid-Summer 2010 MacBook Pro (Sierra 10.12.4)์ +1 ์ถ๊ฐ :
ฮป ์์ฌ ์ถ๊ฐ ๋ถํธ ์คํธ๋ฉ-์๋ฉ์ด
์์ฌ ์ถ๊ฐ v0.24.5
[1/4] ๐ ํจํค์ง ํด๊ฒฐ ์ค ...
[2/4] ๐ ํจํค์ง ๊ฐ์ ธ ์ค๋ ์ค ...
[3/4] ๐ ์์กด์ฑ ์ฐ๊ฒฐ ...
[4/4] ๐ ์๋ก์ด ํจํค์ง ๋ง๋ค๊ธฐ ...
์ฑ๊ณต ์ ์ฅ๋ ์ ๊ธ ํ์ผ.
์ฑ๊ณต 1 ๊ฐ์ ์ ์ข ์์ฑ์ ์ ์ฅํ์ต๋๋ค.
โโ [email protected]
โจ 123.52s ํ์ ์๋ฃ๋์์ต๋๋ค.
"dependencies": {
"@angular/animations": "^4.1.3",
"@angular/common": "^4.0.0",
"@angular/compiler": "^4.0.0",
"@angular/core": "^4.0.0",
"@angular/forms": "^4.0.0",
"@angular/http": "^4.0.0",
"@angular/material": "^2.0.0-beta.5",
"@angular/platform-browser": "^4.0.0",
"@angular/platform-browser-dynamic": "^4.0.0",
"@angular/router": "^4.0.0",
"bootstrap-sass": "^3.3.7",
"core-js": "^2.4.1",
"font-awesome": "^4.7.0",
"material-design-icons": "^3.0.1",
"materialize-css": "^0.98.2",
"rxjs": "^5.1.0",
"zone.js": "^0.8.4"
},
"devDependencies": {
"@angular/cli": "1.0.1",
"@angular/compiler-cli": "^4.0.0",
"@types/jasmine": "2.5.38",
"@types/node": "~6.0.60",
"codelyzer": "~2.0.0",
"jasmine-core": "~2.5.2",
"jasmine-spec-reporter": "~3.2.0",
"karma": "~1.4.1",
"karma-chrome-launcher": "~2.0.0",
"karma-cli": "~1.0.1",
"karma-coverage-istanbul-reporter": "^0.2.0",
"karma-jasmine": "~1.1.0",
"karma-jasmine-html-reporter": "^0.2.2",
"protractor": "~5.1.0",
"ts-node": "~2.0.0",
"tslint": "~4.5.0",
"typescript": "~2.2.0"
}
npm ์ค์น๋ก ๋ค์ ์ ํํ๋ฉด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ต๋๋ค. ๋๋-u'stream ': u'[3/4] ์์ฌ์์ ์ข ์์ฑ ์ฐ๊ฒฐ ๋ฐ NPM์์ ์ค๋ฅ ์์ ..
์ต์ ๋น๋์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค.
Docker๋ฅผ ํตํด ์คํํฉ๋๋ค.
@iwarner npm 5.0์ ์ข์ ์ ํ์ ๋๋ค.
Vagrant (Ubuntu Xenial)์ Jenkins์์ ์ค์ ์ด์ํฉ๋๋ค. package.json์๋ ๋ ๊ฐ์ ํ์ ํ๋ก์ ํธ๊ฐ ์์ต๋๋ค.
npm -v 3.10.10
๋
ธ๋ -v 6.10.1
์์ฌ ์ค์น v0.21.3
npm ์ค์น์ ๋ํ ์๊ฐ ์ด๊ณผ ๋ฌธ์ (4 ์๊ฐ์ ์ถฉ๋ถํ์ง ์์)๊ฐ ์์๊ธฐ ๋๋ฌธ์ ์ผ๋ง ์ ์ npm์์ yarn์ผ๋ก ์ ํํ์ต๋๋ค.
์ด์ ์ ์ฌ๋ ์ฝ 30 %์ ์๊ฐ ๋์ ์๋ํ์ง๋ง 70 %์ ์๊ฐ ๋์ ์ฐ๋ฆฌ๋ ์ด๋ ์์ ์์ 4 ์๊ฐ ์ ํ ์๊ฐ์ ์ป์ต๋๋ค. ์ฒซ ๋ฒ์งธ ์ ์ค์น ๋๋ ๋ ๋ฒ์งธ ์ ์ค์น ๋๋ ๋จ์ ํ ์คํธ (jest)๋ฅผ ์คํํ๋ ๋์ ์๊ฐ ์ด๊ณผ ๋ ์ ์์ต๋๋ค.
์ด๊ฒ์ https://github.com/yarnpkg/yarn/issues/990 ์ ๋ณต์ ํ์ด๋ฉฐ ๋น๊ต ์ฐจํธ๊ฐ ์์ผ๋ฉฐ ์ต์ ๋ฒ์ ์ Yarn์ด ๊ฑฐ๊ธฐ์์ ์ข์ ์ง์ ์ ์ด๋ฃฌ ๊ฒ์ฒ๋ผ ๋ณด์
๋๋ค.
๊ทธ๋๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฉด ์ฌํ ๋จ๊ณ ๋ฐ ์ต์ npm๊ณผ ๋น๊ตํ์ฌ ์๋ก์ด ๋ฌธ์ ๋ฅผ ์ ์ถํ์ญ์์ค.
success Saved lockfile.
Done in 1737.79s.
Ubuntu 16.04
i5, 8GB RAM
:(
Windows 10 v 1709 + SSD + PowerShell + ๋
ธ๋ 6.12.2 :
Yarn ์ค์น๋ ๋ง์ง๋ง ํจํค์ง๊น์ง ๋น ๋ฅด๋ฉฐ preinstall ๋ช
๋ น์์ ๋ฉ์ถ ๊ฒ์ฒ๋ผ ๋ณด์์ต๋๋ค.
์ฌ๊ธฐ์ ์ง์นจ์ ๋ฐ๋ผ Windows ๋ฐฉ์ด์์ ๋ํ ์ ์ธ๋ฅผ ์ถ๊ฐํ์ง๋ง ๋ด ์์ค๋ฅผ % USERPROFILE % source์ ์ฒดํฌ ์์ํ์ฌ ๊ธ๊ฒฉํ ๋๋ ค์ก์ต๋๋ค. c์์ ์ฒดํฌ ์์ํ์ต๋๋ค. ํ์ด ๋ ๋นจ๋์ต๋๋ค.
Ubuntu ํ๋ซํผ์์ํ ์๋ฃจ์ ์ด ์์ต๋๊น? ํจํค์ง๋ฅผ ์ถ๊ฐํ๊ธฐ ์ ์ ๋ง ๊ทธ๋๋ก ๋ ๋ฒ ์๊ฐํด์ผํฉ๋๋ค.
์ฐ๋ถํฌ๋ ์ ์๊ฒ ๋งค์ฐ ๋น ๋ฅด๋ฉฐ ์ ํ ๋๋ฆฌ์ง ์์ต๋๋ค.
2018 ๋ 2 ์ 23 ์ผ ๊ธ์์ผ 11:13 Basant Besra, [email protected] ์์ฑ :
Ubuntu ํ๋ซํผ์์ํ ์๋ฃจ์ ์ด ์์ต๋๊น? ๋ง ๊ทธ๋๋ก ๋ ๋ฒ ์๊ฐํด์ผ ํด์
ํจํค์ง ์ถ๊ฐ.โ
์ด ์ค๋ ๋๋ฅผ ๊ตฌ๋ ํ๊ธฐ ๋๋ฌธ์์ด ๋ฉ์์ง๊ฐ ์ ์ก๋์์ต๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธํ์ธ์.
https://github.com/yarnpkg/yarn/issues/1496#issuecomment-367897260 ๋๋ ์์๊ฑฐ
์ค
https://github.com/notifications/unsubscribe-auth/AAcMheTtAYOsXcrnej_f2F8bY5D3nDT2ks5tXizngaJpZM4Kh3OZ
.
์ด๊ฒ์ ๋งค์ฐ ์ฑ๊ฐ์ ์ผ์
๋๋ค. ๋ง ๊ทธ๋๋ก ๋ชจ๋์์ ํ ์ค์ ๋ณ๊ฒฝํ๊ณ ์ ๋ฒ์ ์ผ๋ก ๋ค์ ๊ฒ์ํ์ผ๋ฉฐ yarn add module
์๋ 5 ๋ถ์ด ๋๊ฒ ๊ฑธ๋ ธ์ต๋๋ค.
ํ ์คํธ ํธ์ง๊ธฐ๋ฅผ ์ฌ์ฉํ์ฌ ์๋์ผ๋ก ํจํค์ง๋ฅผ ์ ๋ฐ์ดํธํ๋ ๊ฒ์ด ๋ ๋น ๋ฆ ๋๋ค.
๋ํ์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค.
success Saved lockfile.
success Saved 1 new dependency.
info Direct dependencies
โโ @material-ui/[email protected]
info All dependencies
โโ @material-ui/[email protected]
Done in 93.43s.
๋ด ์์คํ
์ Linux manjaro 4.14.31-1-MANJARO #1 SMP PREEMPT Wed Mar 28 21:42:49 UTC 2018 x86_64 GNU/Linux
NodeJS : v9.9.0
์์ฌ : v1.5.1
์ ์๊ฒ๋ ๋งค์ฐ ๋๋ฆฝ๋๋ค Done in 254.32s.
๋
ธ๋ v8.10.0
npm 5.6.0
OSX 10.11.6 (15G19009)
[email protected] ์ผ๋ก ๋ค์ ์ ํํ์ต๋๋ค.
๋๋ถ๋ถ์ ๊ฒฝ์ฐ์ด ๋ฌธ์ ๋ฅผ ํผํ๊ธฐ ์ํด ์คํ๋ผ์ธ ์บ์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๊ณ ์์ง๋ง package.json ๋๋ yarn-lockfile์ด ๋ณ๊ฒฝ๋๋ ์ฆ์์ด ๋ฌธ์ ๋ก ๋์๊ฐ๋๋ค. Linux ์์คํ ์์ ์ฐ๊ฒฐํ๋ ๋ฐ 10 ๋ถ์ด ๊ฑธ๋ฆฝ๋๋ค. ๋๋ ์ด๊ฒ์ด ํน์ ์ฐฝ์ด๋ผ๊ณ ์๊ฐํ์ง ์์ต๋๋ค.
์ด๊ฒ์ ํ์คํ Windows๋ง์ ๋ฌธ์ ๊ฐ ์๋๋๋ค (Windows๊ฐ ์๋ ์ปดํจํฐ์์๋ ์ฌ๋๋ค์ ๋ชจ๋ ๊ฒ์๋ฌผ์์ ๋ถ๋ช ํด์ผ ํจ)!
์ ๋ macOS High Sierra 10.13.4์์ ๋ ธ๋ 10.1.0 (npm 5.6.0)๊ณผ yarn 1.6.0์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ์์ฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ข ์์ฑ์ ์ค์นํ๋ ๋ฐ 40 ์ด๊ฐ ๊ฑธ๋ ธ์ต๋๋ค. npm์ผ๋ก ์ ํํ๋๋ฐ ์ฝ 10 ์ด๊ฐ ๊ฑธ๋ ธ์ต๋๋ค. ๋น๋ถ๊ฐ npm์ ๊ณ ์ํ๊ฒ ์ต๋๋ค.
centos 7 ๋ฐ์ค๋ ๋ง์ฐฌ๊ฐ์ง์
๋๋ค. ์ด๊ฒ์ ๋ํ ์
๋ฐ์ดํธ๊ฐ ์์ต๋๊น?
์์ฌ : v1.7.0
npm : v5.7.1
๋ ธ๋ 10์ Mac์์ 1.9.2์์ ๋์๊ฒ ๋ฐ์ํฉ๋๋ค.
macOS HighSierra์์ Avast FileShield๊ฐ ๋ฌธ์ ๋ฅผ ์ผ์ผ์ผฐ์ต๋๋ค. which yarn
์ฌ์ฉํ์ฌ yarn ์คํ ํ์ผ์ ์ ์ธ ๋ ๊ฒฝ๋ก๋ก ์ถ๊ฐํ์ต๋๋ค. ์ด์ ๊ด์ฐฎ์ ๊ฒ ๊ฐ์ต๋๋ค. ๋์ ์ค๋ฉด ์
๋ฐ์ดํธํ๊ฒ ์ต๋๋ค.
๋ ธ๋ 10์ Mac์์ 1.9.2์์ ๋์๊ฒ ๋ฐ์ํฉ๋๋ค.
์ฌ๊ธฐ๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค. High Sierra์ Yarn 1.9.2, ๋ ธ๋ 10.6.0.
@bestander ์ด๊ฒ์ Windows ๋ฌธ์ ๊ฐ ์๋๋๋ค. Yarn 1.9.4๋ก Mac์์ ์ฌํ ํ ์ ์์ต๋๋ค. ์ด ๋ฌธ์ ๋ ๋ค์ ์ด์ด์ผํฉ๋๋ค.
@davidgoli , ์ ๋ฌธ์ ๋ฅผ ์ด์ด์ผํฉ๋๋ค.์ด ๋ฌธ์ ๋ ์๋ก์ด ๋ฌธ์ ์ด๋ฏ๋ก ๋ณ๋๋ก ๋ถ๋ฅํด์ผํฉ๋๋ค.
์ ์ฌ๋ ๋ด๊ฐ ์คํ ํ ๋ชจ๋ ํ๊ฒฝ์์ ๋งค์ฐ ๋๋ฆฝ๋๋ค. ๋ฐ๋น์, ๋งฅ, ์๋์ฐ. ์๋ก์ด ๋ฌธ์ ๊ฐ ๊ณต๊ฐ ๋์์ต๋๊น? ๋๋ node_modules๋ฅผ ์ ๊ฑฐํ๋ RFC๊ฐ ์ด๊ฒ์ ํด๊ฒฐํ ๊ฒ์ ๋๊น?
๋๋ ๊ฐ์ ๋ฌธ์ ๊ฐ ์๊ณ ์ด๋ฏธ npm์ผ๋ก ์ ํํ์ง๋ง ์ฌ์ ํ ๋ฒ๊ทธ๊ฐ ์์ต๋๋ค.
Yarn์๋ ๋์ผํ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ํด๊ฒฐ์ฑ ์ ์ฐพ์์ต๋๊น?
์ด๊ฒ์ # 990์ ๋ณต์ ํ์ด๋ฉฐ ๋น๊ต ์ฐจํธ๊ฐ ์์ผ๋ฉฐ ์ต์ ๋ฒ์ ์ Yarn์ด ๊ฑฐ๊ธฐ์์ ์ข์ ์ง์ ์ ์ด๋ฃฌ ๊ฒ์ฒ๋ผ ๋ณด์ ๋๋ค.
๊ทธ๋๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฉด ์ฌํ ๋จ๊ณ ๋ฐ ์ต์ npm๊ณผ ๋น๊ตํ์ฌ ์๋ก์ด ๋ฌธ์ ๋ฅผ ์ ์ถํ์ญ์์ค.
์ด๊ฒ์ ์ค๋ณต๋์ง ์์ผ๋ฉฐ,์ด ๋ฌธ์ ๋ Windows์ ๊ดํ ๊ฒ์ด ์๋๋๋ค. ์ ๋ฌธ์ ๋ฅผ ์ด๋ฉด ์ปจํ ์คํธ๊ฐ ์์ค ๋ ์ ์์ต๋๋ค.
๋๋ ๊ฐ์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค!
yarn install
yarn install v1.16.0
[1/5] Validating package.json...
[2/5] Resolving packages...
[3/5] Fetching packages...
info [email protected]: The platform "linux" is incompatible with this module.
info "[email protected]" is an optional dependency and failed compatibility check. Excluding it from installation.
info [email protected]: The platform "linux" is incompatible with this module.
info "[email protected]" is an optional dependency and failed compatibility check. Excluding it from installation.
[4/5] Linking dependencies...
[###############################################---------------------------------------------------------------------------------------------] 22778/67399
Done in 179.59s.
MacOS / Docker
๋ฐฉ๋์ 2.2.4
์๋ : Ubuntu 18.10 (GNU/Linux 4.18.0-25-generic x86_64)
ํธ์คํธ : MacOS 10.14.5 Mojave
์์ฌ 1.16.0
npm 6.9.0
MacBook Pro (Retina, 13 ํ, 2015 ๋
์ด๋ฐ)
ํ๋ก์ธ์ 2.7GHz Intel Core i5
๋ฉ๋ชจ๋ฆฌ 16GB 1867MHz DDR3
yarn install v1.16.0
[1/4] Resolving packages...
[2/4] Fetching packages...
info [email protected]: The platform "linux" is incompatible with this module.
info "[email protected]" is an optional dependency and failed compatibility check. Excluding it from installation.
[3/4] Linking dependencies...
[4/4] Building fresh packages...
success Saved lockfile.
Done in 1552.45s.
25 ๋ถ ์ด์์ ์์ฐ์ฑ์ ์์ง ์๊ณ ๋ ์ค์ ๋ก yarn install
๋ฅผ ์คํํ ์ ์์ต๋๋ค. ๋ง๋ ์ ๋ผ. ๋๋ ์ด๊ฒ์ด Windows ๋ฌธ์ ๋ผ๊ณ ์๊ฐํ์ง ์์ต๋๋ค. ๊ฐ์ํ ๋ ํ๊ฒฝ์์ ์คํํ ๋ ๋ช ๊ฐ์ง ๋ฌธ์ ๊ฐ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์๋ง๋ ๊ฒ์คํธ OS์์ ๋๊ธฐํ ๋ ํด๋ / ํ์ผ ์ํ ํ์ธ๊ณผ ๊ด๋ จ์ด ์์ต๋๊น?
์์ฌ v1.17.3
๋
ธ๋ v10.16.3
npm 6.9.0
yarn cache dir
์ ๋์ผํ ๋์คํฌ ์น์
์ ๋ด ์ฑ ํ๋ก์ ํธ ํด๋ ์์น๋ฅผ ๋ฐฐ์นํ๋ ค๊ณ ํ์ต๋๋ค.
์์ฌ ์บ์ ๋๋ ํ ๋ฆฌ-> C : ์ฌ์ฉ์
๊ฒฐ๊ณผ:
์ด์ ์์น-> D : myApp Done in 747.17s.
์ ์์น-> C : myApp Done in 488.97s.
C์ D๋ ๋์ผํ ๋ฌผ๋ฆฌ ๋์คํฌ์ ๋๋ค.
๊ทธ๋ฌ๋ Mac์ Windows Done in 121.37s
๋ณด๋ค ๋น ๋ฆ
๋๋ค.
๋ณ๋ชฉ ํ์์ด ๋์คํฌ ์ฝ๊ธฐ / ์ฐ๊ธฐ ์๋๋ผ๊ณ ์๊ฐํฉ๋๊น?
OS X 10.15
์์ฌ v1.22.4
๋
ธ๋ v12.13.0
npm v6.12.0
๋๋ ์์ง๋ ์ด๊ฒ์ ๊ฒฝํํ๊ณ ์๋ค. ํ๋ก์ ํธ๊ฐ ๋ง์ดํธ ๋ ์ํธํ ๋ ๋์คํฌ ์ด๋ฏธ์ง์ ์์ต๋๋ค. ๋น๊ต์ ์์ package.json
์ผ๋ก ๋จ์ผ ํจํค์ง๋ฅผ ์ค์นํ๋ ๋ฐ ๋ช ๋ถ์ด ๊ฑธ๋ฆฝ๋๋ค. ๋ฒค์น๋งํนํ์ง๋ ์์์ง๋ง npm์ ํจ์ฌ ๋นจ๋ผ์ก์ต๋๋ค.
ํธ์ง : ๋์ผํ ์ํธํ ๋ ๋ณผ๋ฅจ์ ์๋๋ก ์์ฌ์ ๊ธฐ๋ณธ ์บ์ ํด๋๋ฅผ ๋ณ๊ฒฝํ๋ฉด์ด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ต๋๋ค.
์ด๊ฒ๋ ๋ง์๊ณ ๋๋ ๋ฌ๋ฆฌ๊ณ ์์ต๋๋ค.
์ด์์ฒด์ : Ubuntu 18.04.2
ํธ์ค : 1.22.4
๋
ธ๋ : 14.7.0
NPM : 6.14.7
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋ฐ์ด๋ฌ์ค ๋ฐฑ์ ์ค์บ๋๋ฅผ ์ค์นํ์ง ์๊ณ Mac์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ฐ๋จํ angular-js ์ฑ์ผ๋ก๋ ์๋นํ ์๊ฐ์ด ๊ฑธ๋ฆฌ๋ ์ฐ๊ฒฐ์ ๋์ผํ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.