์คํ yarn install
A์ ๋น๋ ๋จ๊ณ์ ์ผ๋ถ๋ก์ ๋์ปค ์ด๋ฏธ์ง ์ ๊ธฐ์ด node:7
ํธ๋๋น์ค CI ์คํจ ๋ก ENOTEMPTY
, EEXISTS
์ค๋ฅ. webdriverio
ํจํค์ง์์ ํญ์ ์ค๋ฅ๊ฐ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
yarn install v0.19.1
[1/4] Resolving packages...
[2/4] Fetching packages...
error An unexpected error occurred: "https://registry.yarnpkg.com/webdriverio/-/webdriverio-4.6.2.tgz: ENOENT: no such file or directory, open '/usr/local/share/.cache/yarn/npm-webdriverio-4.6.2-dd095ee618896a21c8f1b9d4278736d85a64ca0f/lib/protocol/timeouts.js'".
Travis๊ฐ ์ค์น ๋จ๊ณ์ ์ผ๋ถ๋ก yarn install
๋ฅผ ์คํํ๋ฉด ์ ๋๋ก ์๋ํฉ๋๋ค . ์ด ์ค๋ฅ๋ Docker ์ด๋ฏธ์ง๋ฅผ ๋น๋ ํ ๋๋ง ๋ฐ์ํฉ๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ์ฌํํ๋ Repo .
๋
ธ๋ : 7
์ด์์ฒด์ : Docker + Travis CI
์์ฌ : 0.19.1
package.json
yarn.lock
npm install -g
๋ฐ apt
๋ชจ๋ ์ฌ์ฉํ์ฌ yarn์ ์ค์นํ๋ ค๊ณ ์๋ํ์ผ๋ฉฐ ๋ ๋ฐฉ๋ฒ ๋ชจ๋ Travis์์ ์ค๋ฅ๋ฅผ ๋ฐ์์ํต๋๋ค.
์ด์ํ๊ฒ๋ ์ด๋ฏธ์ง๋ Docker ๋ฒ์ 1.13.0, ๋น๋ 49bf474๋ก Ubuntu 16.04.1 LTS๋ฅผ ์คํํ๋ ๋ก์ปฌ ์ปดํจํฐ์์ ์ฑ๊ณต์ ์ผ๋ก ๋น๋๋ฉ๋๋ค.
ํฅ๋ฏธ ๋กญ์ต๋๋ค. Travis์์๋ง ์คํจํ์ง๋ง ๋ก์ปฌ์์ ํ ์คํธ ํ ๋ ์๋ํฉ๋๊น? Docker๊ฐ ํ๊ฒฝ์ ์ผ๊ด์ฑ์ ๋ณด์ฅํด์ผํ๋ค๋ ์ ์ ๊ฐ์ํ๋ฉด ๋งค์ฐ ์ด์ํฉ๋๋ค.
@ Daniel15 ๋ง์์ ...
๋
ธ๋๋ฅผ ๋ฒ์ 6์ผ๋ก ๋ค์ด ๊ทธ๋ ์ด๋ํ์ง๋ง Travis์์๋ ์ฌ์ ํ ์คํจํฉ๋๋ค. --verbose
ํ๋๊ทธ๋ฅผ yarn install
์ ์ถ๊ฐํ์ต๋๋ค.
verbose Performing "GET" request to "https://registry.yarnpkg.com/spawn-wrap/-/spawn-wrap-1.3.4.tgz".
verbose Performing "GET" request to "https://registry.yarnpkg.com/yargs/-/yargs-6.6.0.tgz".
verbose Performing "GET" request to "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-4.2.1.tgz".
verbose Performing "GET" request to "https://registry.yarnpkg.com/fibers/-/fibers-1.0.15.tgz".
verbose Performing "GET" request to "https://registry.yarnpkg.com/selenium-standalone/-/selenium-standalone-5.11.2.tgz".
verbose Performing "GET" request to "https://registry.yarnpkg.com/tcp-port-used/-/tcp-port-used-0.1.2.tgz".
verbose Performing "GET" request to "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-5.8.38.tgz".
verbose Error: ENOTEMPTY: directory not empty, rmdir '/usr/local/share/.cache/yarn/npm-webdriverio-4.6.2-dd095ee618896a21c8f1b9d4278736d85a64ca0f/lib/protocol'
at Error (native)
error An unexpected error occurred: "ENOTEMPTY: directory not empty, rmdir '/usr/local/share/.cache/yarn/npm-webdriverio-4.6.2-dd095ee618896a21c8f1b9d4278736d85a64ca0f/lib/protocol'".
๋๋ ์ด๊ฒ์ ๋๋ฒ๊น ํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์์ด๋์ด์ ์ด๋ ค ์์ต๋๋ค.
์์ฌ 0.18.1๋ก ๋ค์ด ๊ทธ๋ ์ด๋ํ๋ฉด์ด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋๋ ๊ฒ ๊ฐ์ต๋๋ค. 0.19๋ ํ๊ท๊ฐ์์ ์ ์์ต๋๋ค. # 1834 ์ฐธ์กฐ
๋ํ ์์ฌ 0.23.3์์๋์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค. ์ด๋ฏธ์ง๋ฅผ ๋ง๋ค ๋๊ฐ ์๋๋ผ ๋จ์ํ CI๋ฅผ ์คํํ ๋ ๋ฐ์ํฉ๋๋ค.
์ค๋ฅ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
$ time yarn --frozen-lockfile
yarn install v0.20.3
[1/4] Resolving packages...
[2/4] Fetching packages...
error An unexpected error occurred: "ENOTEMPTY: directory not empty, rmdir '/builds/linagora/petals-cockpit/yarncache/npm-@angular/core-4.0.0-beta.8-8d9c8a64e7c26ff7208404e716deea94bb509cd7/src'".
info If you think this is a bug, please open a bug report with the information provided in "/builds/linagora/petals-cockpit/frontend/yarn-error.log".
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
real 0m9.812s
user 0m7.596s
sys 0m0.932s
ํ์ผ์ ์ ๊ฑฐํ๋ ์ด์ํ ๋ฐฉ๋ฒ์ด์์ ์ ์์ต๋๋คโฆ
์ค์ํ ์ : ์บ์๊ฐ ๋น์ด์์์ต๋๋ค!
๋ด ์ปดํจํฐ์์ ์ฌํํ๋ ค๊ณ ํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ๊ฒฐ๊ณผ๊ฐ ๋ํ๋ฉ๋๋ค.
yarn install v0.20.3
[1/4] Resolving packages...
[2/4] Fetching packages...
error An unexpected error occurred: "http://docker0.gso.lan:8081/repository/npm/@angular/core/-/core-4.0.0-beta.8.tgz: EEXIST: file already exists, mkdir '/home/vnoel/.cache/yarn/npm-@angular/core-4.0.0-beta.8-8d9c8a64e7c26ff7208404e716deea94bb509cd7/src/metadata'".
info If you think this is a bug, please open a bug report with the information provided in "/home/vnoel/Linagora/Petals/dev/git/petals-cockpit-new/frontend/yarn-error.log".
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
๊ทธ๋ฆฌ๊ณ ์์ฌ 0.21.2 :
yarn install v0.21.2
[1/4] Resolving packages...
[2/4] Fetching packages...
error An unexpected error occurred: "http://docker0.gso.lan:8081/repository/npm/@angular/core/-/core-4.0.0-beta.8.tgz: ENOENT: no such file or directory, lstat '/home/vnoel/.cache/yarn/npm-@angular/core-4.0.0-beta.8-8d9c8a64e7c26ff7208404e716deea94bb509cd7/bundles/core.umd.js'".
info If you think this is a bug, please open a bug report with the information provided in "/home/vnoel/Linagora/Petals/dev/git/petals-cockpit-new/frontend/yarn-error.log".
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
๋์ฐ ํด์!
๊ทธ๋ฆฌ๊ณ ๋๋ 0.18.1 ์ ๋ํด @twooster์ ๋์ํฉ๋๋ค!
@ Daniel15 ๋ก์ปฌ์์๋ ์๋ํ์ง ์์ต๋๋ค. ์ค์ ๋ก ์บ์๊ฐ ๋น์ด์์ ๋ ์๋ํ์ง ์์ต๋๋ค!
@victornoel ์ต๊ทผ ์ค๋ฅ๋ https://github.com/yarnpkg/yarn/issues/2714 ์ผ ์ ์์ต๋๋ค.
@bestander ๋๋ ๋น์ 0.19.1์ ์๋ํ์ง๋ง ์๋ํ์ง ์์์ต๋๋ค ...
๋๋ ์ฌ ์๋ํ๊ณ ์ด์ ๋ฒ๊ทธ :
rm -rf
์์ฌ ์บ์frontend
๋๋ ํ ๋ฆฌ์์ yarn ์คํfrontend
๋๋ ํ ๋ฆฌ์์ yarn์ ๋ค์ ์คํํ์ญ์์ค.error An unexpected error occurred: "http://docker0.gso.lan:8081/repository/npm/@angular/core/-/core-4.0.0-rc.1.tgz: ENOENT: no such file or directory, utime '/home/vnoel/.cache/yarn/npm-@angular/core-4.0.0-rc.1-7f87b7696b407476e45d6d3c1880a50d5afbb6e3/@angular/core/testing.js'".
(๋ด ์์ ์ ๋ ์ง์คํธ๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ณ ์์ง๋ง ๊ทธ๊ฒ ์์ด๋ ๊ฐ์ ์ผ์ด ์ผ์ด๋๋ค)๊ทธ๋ฌ๋ ๋๊ฐ์ง ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ ์ด๋ ์ฌํ ํ ์ ์์ผ๋ฉด ์ข๊ฒ ์ต๋๋ค ...
(์ฌ์ค, ๋ฐฉ๊ธ ๋ค์ ์๋ํ๊ณ ๋น ์บ์์ 0.21.2 ์ค๋ก ๋ฒ๊ทธ๋ฅผ ์ฌํํ์ง๋ง ์ด์ ์๋ ๊ทธ๋ ์ง ์์์ง๋ง์ด ๋ฌธ์ ์ ์์ธ์ด๋๋ ๋ค๋ฅธ ํ์ผ์ด์์ ์ ์์ต๋๋ค. ์๋์ฒ?)
@bestander # 2744๊ฐ ์ผ๊ฐ ๋น๋๋ก ์ ๊ณต๋๋ ์ฆ์ ์ค์ ํ ์คํธ ํ ๊ฒ์ ๋๋ค. :)
๋์์ด ํ์ํ๋ฉด ํ์ํ์ธ์.
๊ฐ์ฅ ์ข์ ์กฐ์น๋ e2e ํ
์คํธ๋ฅผ ์ค๋จํ๊ณ ๊ฑด๋ ๋ด PR์ ๋ณด๋ด๋ ๊ฒ์
๋๋ค.
@bestander ์ ,
โ frontend git:(master) โ yarn
yarn install v0.22.0-20170227.1509
[1/4] Resolving packages...
[2/4] Fetching packages...
error An unexpected error occurred: "https://registry.yarnpkg.com/@angular/core/-/core-4.0.0-rc.1.tgz: ENOENT: no such file or directory, lstat '/home/vnoel/.cache/yarn/npm-@angular/core-4.0.0-rc.1-7f87b7696b407476e45d6d3c1880a50d5afbb6e3/typings/src/facade/lang.d.ts'".
๋๋:
โ frontend git:(master) โ yarn
yarn install v0.22.0-20170227.1509
[1/4] Resolving packages...
[2/4] Fetching packages...
error An unexpected error occurred: "https://registry.yarnpkg.com/typescript/-/typescript-2.2.1.tgz: ENOENT: no such file or directory, lstat '/home/vnoel/.cache/yarn/npm-typescript-2.2.1-4862b662b988a4c8ff691cc7969622d24db76ae9/lib/typescriptServices.js'".
e2e ํ ์คํธ๋ฅผ ํ ์ ์๋์ง ๋ณผ ๊ฒ์ ๋๋ค.
@bestander ์ด์จ๋ ์ค๋ฅ์ ์ ์ฒด ์คํ
yarn-error.log์์๋ง ๋ณผ ์ ์์ต๋๋ค.
Trace:
Error: http://docker0.gso.lan:8081/repository/npm/@angular/core/-/core-4.0.0-rc.1.tgz: ENOENT: no such file or directory, lstat '/home/vnoel/.cache/yarn/npm-@angular/core-4.0.0-rc.1-7f87b7696b407476e45d6d3c1880a50d5afbb6e3/@angular/core.es5.js'
at Error (native)
๊ทธ๊ฒ์ ์ฝ๊ฐ ์ธ๋ชจ๊ฐ ์์ต๋๋ค :)
์ธ๋ถ ์ค๋ฅ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
{ Error: http://docker0.gso.lan:8081/repository/npm/@angular/core/-/core-4.0.0-rc.1.tgz: ENOENT: no such file or directory, lstat '/home/vnoel/.cache/yarn/npm-@angular/core-4.0.0-rc.1-7f87b7696b407476e45d6d3c1880a50d5afbb6e3/@angular/core.js'
at Error (native)
errno: -2,
code: 'ENOENT',
syscall: 'lstat',
path: '/home/vnoel/.cache/yarn/npm-@angular/core-4.0.0-rc.1-7f87b7696b407476e45d6d3c1880a50d5afbb6e3/@angular/core.js',
fstream_type: 'File',
fstream_path: '/home/vnoel/.cache/yarn/npm-@angular/core-4.0.0-rc.1-7f87b7696b407476e45d6d3c1880a50d5afbb6e3/@angular/core.js',
fstream_class: 'FileWriter',
fstream_stack:
[ '/home/vnoel/Linagora/Petals/dev/git/yarn/node_modules/fstream/lib/writer.js:285:28',
'/home/vnoel/Linagora/Petals/dev/git/yarn/node_modules/graceful-fs/polyfills.js:284:29',
'FSReqWrap.oncomplete (fs.js:123:15)' ] }
์ ํํ ๋ฌด์์ํด์ผํ ์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋คโฆ package-fetcher.js
, 56 ํ์์ ์ ํํ ๋ฐ์ํ๊ณ ์์ต๋๋ค. ์์ค๋ฅผ ์ฐพ๋ ๋ฐ ์ด๋ ค์์ด ์์ต๋๋คโฆ
์ด๋ฆฌ์์ ๊ฒ์ฒ๋ผ ๋ณด์ด์ง๋ง ๋คํธ์ํฌ๋ก ์ฐ๊ฒฐ๋ npm ๋ฏธ๋ฌ (ํ์ฌ์ sonatype nexus)๊ฐ @angular/core
์ํฐํฉํธ๋ฅผ ๋ฏธ๋ฌ๋งํ์ ๋๋ง ์คํจํ ๊ฒ ๊ฐ์ต๋๋ค. ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๊ณ ์ด๋ฏธ ๋ฏธ๋ฌ๋ง ๋ ๋ค๋ฅธ ์ํฐํฉํธ์์ ์คํจํฉ๋๋ค (์ด ๊ฒฝ์ฐ typescript
).
๋ฅ์์ค ๊ฑฐ์ธ์์ ์ธ๊ณต๋ฌผ์ ์์ผ๋ก ์ ๊ฑฐํ๋ฉด ์๋ํฉ๋๋ค!
๊ทธ๋์ ... ๋๋ฌด ๋นจ๋ฆฌ ๋์ฐฉํ๋ฉด ์์ฌ๊ฐ ๋ฐ๋ผ ์ก์ ์์๋ ๊ฒ ๊ฐ์์ ^^ ์๋ํ๋ฉด ๋ฏธ๋ฌ๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ์ผ๋ฐ npm ๋ ์ง์คํธ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ณดํต ์ ์งํ๋๊ธฐ ๋๋ฌธ์
๋๋ค (์ธํฐ๋ท ์ฐ๊ฒฐ ์๋๊ฐ ๋๋ฆฝ๋๋ค).
๊ทธ๋ฆฌ๊ณ ์ผ๋ฐ์ ์ผ๋ก ๋งค์ฐ ๋น ๋ฅธ ์ธํฐ๋ท ์ฐ๊ฒฐ์ด ์๊ธฐ ๋๋ฌธ์ CI ์์คํ
์์ ์ข
์ข
์คํจํ๋ ์ด์ ๋ฅผ ์ค๋ช
ํฉ๋๋ค.
๊ฒฐ๋ก ์ ๋ด๋ฆฌ๊ธฐ์๋ ์ฝ๊ฐ์ ์ฐ์ฅ์ ์ด ์์ง๋ง ๋ฌธ์ ์ ์์ธ์ ์ฐพ๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค.
WDYT @bestander?
๊ธฐ๋ก์ ์ํด, ์ค๋ฅ๋ ๊ฐ์ ธ ์ค๊ธฐ ํ์ดํ ๋ผ์ธ์ tar.Extract
๋จ๊ณ์์ ๋ฐ์ํ๋ค๊ณ ์๊ฐํ์ง๋ง ์์ ํ ํ์คํ์ง๋ ์์ต๋๋ค ^^
๋ ๋ง์ ๊ฒ์ ์กฐ์ฌํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค,
https://github.com/yarnpkg/yarn/issues/2629#issuecomment -282745896์์ ์๋๋ฆฌ์ค๋ฅผ ์ฌํ ํ ์ ์์ต๋๋ค.
๊ทธ๊ฒ์ ์ฐพ๊ณ ์์ต๋๋ค.
๋๋ ์ป๋ค
error An unexpected error occurred: "https://registry.yarnpkg.com/typescript/-/typescript-2.2.1.tgz: ENOENT: no such file or directory, lstat '/Users/bestander/Library/Caches/Yarn/npm-typescript-2.2.1-4862b662b988a4c8ff691cc7969622d24db76ae9/lib/typescriptServices.js'".
๊ทธ๋ฌ๋ yarn install
๋ฐ๋ณตํด์ ์๋ํ๋ฉด ๊ฒฐ๊ตญ ์ค์น๊ฐ ์๋ฃ๋ฉ๋๋ค.
.tgz ํ์ผ ํญ๋ฐ์ด ์ค๋ฅ๋ก ๋๋๋ ๊ฒ ๊ฐ์ต๋๋ค.
์ต์ ์ ๋ณด:
tar
ํจํค์ง์์ ์ด๋ค ์ด์ ๋ก์ด ์ค๋ฅ๊ฐ ๋ฐ์ํ๋์ง ๊ถ๊ธํฉ๋๋ค. ๋์์ฑ์ผ๊น์?๋ช ๊ฐ์ง ์ข
์์ฑ (์ ๊ฒฝ์ฐ์๋ typescript ๋ฐ angular-core)์ด ์ค๋ฅ๋ฅผ ์ผ์ผํค๋ ์ด์ ๋ฅผ ์กฐ์ฌํ๋ ๋ฐ ๋์์ด๋ฉ๋๋ค.
๋์์ฑ? https://github.com/npm/node-tar์ ๋ฒ๊ทธ
@victornoel , yarn install --network-concurrency 1
๋ฒ๊ทธ๋ฅผ ์ฌํ ํ ์ ์์ต๋๊น?
@bestander with --network-concurrency 1
๋ฒ๊ทธ๋ ๋ํ๋์ง ์์ต๋๋ค (๊ทธ๊ฒ์ด ์์ผ๋ฉด ๋งค๋ฒ ๋ํ๋ฉ๋๋ค).
๊ทธ๋ฌ๋์ด ๋งค๊ฐ ๋ณ์์ ๊ธฐ๋ณธ๊ฐ์ ๋ฌด์์
๋๊น? ์ด๋ค ๊ฐ์ ์ ํํ๋ (1, 2, 4, 8) ์๋ํ์ง๋ง ์ ํ ์
๋ ฅํ์ง ์์ผ๋ฉด ์คํจํฉ๋๋ค.
๊ธฐ๋ณธ๊ฐ์ 15์
๋๋ค. https://gitlab.com/linagora/petals-cockpit.git#075bac4c54fee466568c000c7ffe8025f593e212
์ ๊นจ๋ํ ์ฒดํฌ ์์์ผ๋ก ๋์์ฑ 15 ๋ฌธ์ ๋ฅผ ์ฌํ ํ ์ ์์ต๋๋ค.
์ข์ ์์์ ๋๋ค! ์๋ฃจ์ ๋ฐ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ํฅํ ํ ๊ฑธ์ ๋ ๋์๊ฐ :)
์ผ๋ถ ๊ฒฐ๊ณผ.
TL; DR ๋๋ ๊ทธ๊ฒ์ ์ ๋๋ก ๊ณ ์น๋ ๋ฐฉ๋ฒ์ ๋ํ ์์ด๋์ด๊ฐ ๋ถ์กฑํฉ๋๋ค. ์ด๊ฒ์ ์ข ๋ ๊น์ Node.js ์ง์์ด ํ์ํฉ๋๋ค.
๋ฌธ์ ๋ tarball-fetcher ์ฝ๋์ ์์ถ ํด์ / ํ๊ธฐ ์คํธ๋ฆผ์ ์์ต๋๋ค.
Error: ENOENT: no such file or directory, chmod '/Users/bestander/Library/Caches/Yarn/npm-@angular/core-4.0.0-rc.1-7f87b7696b407476e45d6d3c1880a50d5afbb6e3/typings/src/di/injector.d.ts'
errno: -2,
code: 'ENOENT',
syscall: 'chmod',
path: '/Users/bestander/Library/Caches/Yarn/npm-@angular/core-4.0.0-rc.1-7f87b7696b407476e45d6d3c1880a50d5afbb6e3/typings/src/di/injector.d.ts' }
core-4.0.0 ๋ฐ typescript-2.2.1์ ํ์ผ ์๊ฐ ๋ง๊ณ ํด๋ ๊ตฌ์กฐ๊ฐ ๊น๊ธฐ ๋๋ฌธ์ ์คํจํ๊ณ ๋ง์ ๋์ mkdir / copy ์์ ์ ์ํํ๋ฉด์ ์ค์น์ ์คํจํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์คํจํ๋ ๋ค๋ฅธ syscall์ด์์ ๋๋ง๋ค : chmod, rmdir, mkdir, lstat, utime.
๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ ๋์๊ด์ ์ฝ๋์์ ๋ช ๋ฐฑํ ๊ฒ์ด ์๋๋๋ค.
๋ ธ๋ 4, 6 ๋ฐ 7์์ ๋์ผํ๊ฒ ์คํจํฉ๋๋ค.
๋์์ฑ์ 8๋ก ์ค์ ํ ์ํ์์ ์ค๋ฅ๋ฅผ ์ฌํ ํ ์ ์์ผ๋ฏ๋ก ๊ธฐ๋ณธ ๋คํธ์ํฌ ๋์์ฑ์ ์ค์ด๊ธฐ ์ํด PR์ ๋ณด๋ด๊ฒ ์ต๋๋ค.
5.1. ๋ด MBPro 13 "์์ ์คํ๋ผ์ธ ๋ฏธ๋ฌ (๋ค์ด๋ก๋ ์์)๋ฅผ ์ฌ์ฉํ๊ณ ์บ์๋ฅผ ์ ๋ฆฌํ๊ณ node-tar
๋ฅผ ์ฌ์ฉํ์ฌ ํ์ผ ์์ถ์ ํ๋ ๋ค.
๋์์ฑ 12-์คํจ
๋์์ฑ 8-18 ์ด
๋์์ฑ 4-18 ์ด
๋์์ฑ 2-21 ์ด
5.2. ๋ด MBPro 13 "์์ ์คํ๋ผ์ธ ๋ฏธ๋ฌ (๋ค์ด๋ก๋ ์์)๋ฅผ ์ฌ์ฉํ๊ณ ์บ์๋ฅผ ์ ๋ฆฌํ๊ณ tar-fs
๋ฅผ ์ฌ์ฉํ์ฌ ํ์ผ ์์ถ์ ํ๋ ๋ค.
๋์์ฑ 12-15 ์ด
๋์์ฑ 8-15 ์ด
๋์์ฑ 4-17 ์ด
๋์์ฑ 2-18 ์ด
5.3. ์ธํฐ๋ท, MBPro 13 "์์ ํจํค์ง๋ฅผ ๋ค์ด๋ก๋ํ๊ณ ์บ์๋ฅผ ์ ๋ฆฌํ๊ณ tar-fs
๋ฅผ ์ฌ์ฉํ์ฌ ํ์ผ ์์ถ์ ํ๋ ๋ค.
๋์์ฑ 12-ํ ๋ฒ ์คํจ
๋์์ฑ 8 ~ 21 ์ด
๋์์ฑ 4-23 ์ด
๋์์ฑ 2-34 ์ด
๋์์ฑ์ 8๋ก ์ค์ ํ๋ ๊ฒ์ด ์ถฉ๋ถํ ์์ ํ ๊ฒ์ฒ๋ผ ๋ณด์ด๋ฉฐ tar ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ ํํ๋ ๊ฒ๋ ์๋ฏธ๊ฐ ์์ต๋๋ค.
PR๋ก ํ์ ์กฐ์นํ๊ฒ ์ต๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ์ ์ ํ ๋ฐฉ๋ฒ์ https://github.com/mafintosh/tar-fs๋ฅผ ๋ถ๊ธฐํ๊ณ ๋ ์ค๋งํธ ํ fs ์์ ์ ์ํํ๋ ๊ฒ์ ๋๋ค (์ : ๋ชจ๋ ํด๋์ ๋ํด mkdir์ ํ ๋ฒ๋ง ์ฌ์ฉ).
tar-fs ๊ด๋ฆฌ์๊ฐ ํ๋์ค์ธ ๊ฒ ๊ฐ์ต๋๋ค. ๋ฌธ์ ๋ฅผ ์ด์ด์ ๊ทธ๋ค์ด ์๊ณ / ์ ์ํ๋ ๊ฒ์ ๋ณผ ์ ์์๊น์?
@victornoel , ์ ๋ฐ ๊ทธ๋ ๊ฒ ํ์๊ฒ ์ต๋๊น?
@bestander ์๋ฃ! mafintosh / tar-fs # 61 :)
๋ด ์ ํจ์ค์ ๋น๋ ์์ด์ ํธ์์ yarn
๋ฅผ ํ
์คํธ ํ ๋ ๋ค์ ์ ์ฌํ ์๋๋ฆฌ์ค์์์ด ์ค๋ฅ ๋ฉ์์ง๊ฐ ๋ฐ์ํ์ต๋๋ค.
์ด ๋ฒ๊ทธ๋ฅผ ํธ๋ฆฌ๊ฑฐํ๋ ๋ฐ ํ์ํ ์กฐ๊ฑด์ด ๋ฌด์์ธ์ง ์๊ณ ์์ต๋๊น? ์๋๋ฅผ ์ํด ๋น๋ ์์คํ
์ npm
ํธ์ถ์ yarn
๋ก ๋ฐ๊พธ๊ณ ์ถ์ง๋ง ๋์์ฑ์ ๋นํ์ฑํํด์ผํ๋ ๊ฒฝ์ฐ ๋ณด๋์ค๊ฐ ๋ฌดํจํ ๋ ์ ์์ต๋๋ค.
@ProdigySim ์ # 2829 (์ ๋ง์คํฐ์ ๋ณํฉ ๋จ)์์ ์ค๋ช ํ๋ฏ์ด ๋คํธ์ํฌ ๋์์ฑ์ ์ค์ด๋ฉด ์์ ์ฑ๋ฅ์ ํฐ ์ํฅ์์ฃผ์ง ์์ต๋๋ค. ๊ฐ๋จํ 8๋ก ์ค์ ํ๋ฉด ๊ด์ฐฎ์ต๋๋ค. ์ด์จ๋ ํ ๋ฒ์ 8 ๊ฐ์ ์ข ์์ฑ์ ๋ค์ด๋ก๋ ํ ๋๋ ๋๋ถ๋ถ์ ๋๋ผ์ด๋ธ๊ฐ ์ฒ๋ฆฌ๋์ ๋ฐ๋ฅผ ๊ฒ์ธ์ง ํ์คํ์ง ์์ผ๋ฏ๋ก ํ์คํ ๋ง์ด ๋์จํ์ง ์์ ๊ฒ์ ๋๋ค. :)
@victornoel ์ ๋ณด ์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค. ํ์์ ๊ฒฝ์ฐ --network-concurrency
์ค์ด๋ ๊ฒ๋ง์ผ๋ก๋ ์ถฉ๋ถํ์ง ์์ต๋๋ค. ์ฌ๋ฌ ์ค์ ์ธ์คํด์ค๋ฅผ ๋ณ๋ ฌ๋ก ์คํํ๊ธฐ ๋๋ฌธ์
๋๋ค.
--network-concurrency 1
์ผ๋ก๋์ด ๋ฌธ์ ๋ฅผ ์ฌํ ํ ์ ์์ง๋ง ๋ณ๋์ ๋ฌธ์ ๋ฅผ ์ด์ด์ผํ ๊น์?
์์์ ์ ๊ณต ํ ๊ฒ๊ณผ ๋์ผํ ํ ์คํธ ์ ์ฅ์๋ฅผ ์ฌ์ฉํฉ๋๋ค.
#!/bin/bash
set -x # echo commands
# Clear yarn cache
rm -rf $(yarn cache dir)
# Clone the repo into two separate spots
git clone https://gitlab.com/linagora/petals-cockpit.git repo1
git clone https://gitlab.com/linagora/petals-cockpit.git repo2
# Run yarn on both in parallel
cd repo1/frontend && yarn --network-concurrency 1 &
cd repo2/frontend && yarn --network-concurrency 1 &
๋งค๋ฒ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค (์ง๊ธ๊น์ง 4 ๊ฐ์ ๋ํด 4 ๊ฐ)
error An unexpected error occurred: "https://registry.yarnpkg.com/@angular/core/-/core-4.0.0-rc.2.tgz:
ENOENT: no such file or directory, lstat '/Users/<snip>/Library/Caches/Yarn/npm-@angular/core-4.0.0-rc.2-59535050e5d0e6141417186eee571296f8e9c3d0/@angular/core.es5.js'".
์์ฌ 0.21.3, ๋ ธ๋ v4.5.0, OSX 10.11.6
์ง๊ธ๊น์ง ๋ณ๋ ฌ๋ก ์คํ๋์ง ์๊ฑฐ๋ ์์ ํ ๋ค๋ฅธ ํจํค์ง ์ธํธ๋ฅผ ์ฌ์ฉํ๋ ๋น๋ ์์ ์๋ง ์์ฌ๋ฅผ ํฌํจํ์ฌ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์์ง๋ง ๊ทธ๋๋ ์์ ํ ์ง ํ์ ํ ์ ์์ต๋๋ค. ์ด ๋ฒ๊ทธ์ ๋ฃจํธ ์กฐ๊ฑด์ ๋ํด.
๋ฟก๋ฟก
์ด๊ฒ์ Yarn์ ๊ธ๋ก๋ฒ ๋ค์ด๋ก๋ ์บ์๋ก ์ธํด ๋ฐ์ํ๋ ๋ณ๋์ ๊ด๋ จ ๋ฌธ์ ์
๋๋ค. ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๊ฐ ๋๋ ํ ๋ฆฌ์ ๋ํด ๋ค๋ฅธ ์บ์๋ฅผ ๋ง๋๋ ๊ฒ์
๋๋ค.
--network-concurrency 8
๊ณ์ ์คํํ ์ ์์ต๋๋ค. (์ค์ ๋ก ๋ฌด์ ํ ๋คํธ์ํฌ ๋์์ฑ์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.)
์ฌ๊ธฐ์ ๋ ๋ง์ ์ปจํ ์คํธ๊ฐ
@bestander๋ ๋๋๊ฒ๋ ์ค๋, ๋คํธ์ํฌ ๋์์ฑ์ด 8 ์ผ ๋์๋ ๋ฌธ์ ๊ฐ ๋ค์ ๋ํ๋ฌ์ต๋๋ค (๊ฐ๊ฐ์ ์ ๋ฒ์ ์ ๋ํด tar๋ก ํธ๋ฆฌ๊ฑฐ๋์์ต๋๋ค ^^).ํ์ง๋ง ๋ด CI์์๋ง ... 2๋ก ์ฎ๊ฒผ์ต๋๋ค. ์ข
์์ฑ์ ๋ค์ด๋ก๋ํ๋ ๋ฐ ๋ช ์ด๊ฐ ๋ ๊ฑธ๋ฆฌ๋์ง ์ ๋ง ์ ๊ฒฝ ์ฐ์ง ์์ผ๋ฏ๋ก ์ง๊ธ์ ๊ด์ฐฎ์ต๋๋ค).
tar-fs ํ๋ก์ ํธ์์ ํผ๋๋ฐฑ์๋ฐ์ง ๋ชปํ๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ค๋ฅธ ๋๊ตฌ์๊ฒ ๋์์ ์์ฒญํ ์ ์์ต๋๊น?
OS X ์ฉ Travis ๋น๋์์๋์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค. ์บ์๋ฅผ ์ง์ฐ๊ณ ๋คํธ์ํฌ ๋์์ฑ์ ์ค์ ํ์ง๋ง ๋์์ด๋์ง ์์์ต๋๋ค.
@kevingelion ๋คํธ์ํฌ ๋์์ฑ์ ์ด๋ค ๊ฐ์ผ๋ก ์ค์ ํ์ต๋๊น? ๊ณผ๊ฐํ๊ณ 2์ ๊ฐ์ด ์ค์ ํ์ฌ ๋ฌธ์ ๊ฐ ์ด๊ฒ์ธ์ง ํ์ธํ์ญ์์ค :)
@victornoel ๋๋ ๊ทธ๊ฒ์ 1๊ณผ 2๋ก ์ค์ ํ๊ณ ๋ ์ต์
๋ชจ๋ ์คํจํ์ต๋๋ค. ๋๋ yarn --mutex network
ํ๊ณ ์ฃผ์ฌ์๋ ์ฌ์ฉํ์ง ์์์ต๋๋ค.
@bestander ๋ค์ ํดํน ์์ (ํธ์ง : NOT) ๋ฌธ์ :
diff --git a/src/util/request-manager.js b/src/util/request-manager.js
index e0e134a2..995dac69 100644
--- a/src/util/request-manager.js
+++ b/src/util/request-manager.js
@@ -214,8 +214,7 @@ export default class RequestManager {
}, params.headers);
const promise = new Promise((resolve, reject) => {
- this.queue.push({params, resolve, reject});
- this.shiftQueue();
+ this.execute({params, resolve, reject});
});
// we can't cache a request with a processor
๋ถ๋ช ํ ๊ทธ๊ฒ์ ์์ ์ด ์๋๋ฉฐ ์์ฒญ ๊ด๋ฆฌ์์ ๋๊ธฐ์ด ์์คํ ์ ์์ ํ ์ฐํํ์ง๋ง ๋ฌธ์ ๊ฐ์ด ํ์ ์์คํ ์์ ๋ฐ์ํ๋ค๋ ๊ฒ์ ๋ณด์ฌ์ค๋๋ค.
๊ณ ๋ง์, ๋น ํฐ!
2017 ๋ 3 ์ 24 ์ผ 18:07์ Victor Noรซl [email protected] ์ ๋ค์๊ณผ ๊ฐ์ด ์ผ์ต๋๋ค.
@bestander https://github.com/bestander ๋ค์ ํดํน ์์ ์ฌํญ
๋ฌธ์ :diff --git a / src / util / request-manager.js b / src / util / request-manager.js
์์ธ e0e134a2..995dac69 100644
--- a / src / util / request-manager.js
+++ b / src / util / request-manager.js
@@ -214,8 +214,7 @@ ๋ด๋ณด๋ด๊ธฐ ๊ธฐ๋ณธ ํด๋์ค RequestManager {
}, params.headers);const promise = new Promise((resolve, reject) => {
- this.queue.push ({params, resolve, reject});
- this.shiftQueue ();
- this.execute ({params, resolve, reject});
});// we can't cache a request with a processor
๋ถ๋ช ํ ์์ ์ด ์๋๋ฉฐ ์์ฒญ ๊ด๋ฆฌ์๋ฅผ ์์ ํ ์ฐํํ๊ณ
ํ์ ์์คํ ์ด์ง๋ง ๋ฌธ์ ๊ฐ
ํ์ ์์คํ .โ
๋น์ ์ด ์ธ๊ธ ๋์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๊ณ ์์ต๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธํ์ธ์.
https://github.com/yarnpkg/yarn/issues/2629#issuecomment-289102067 ๋๋ ์์๊ฑฐ
์ค
https://github.com/notifications/unsubscribe-auth/ACBdWF66L-NzAInx7Bhs6V7s7LKahxxUks5rpAZ1gaJpZM4L3JbX
.
์๋ผ, ์๋ผ : Dํ์ง๋ง ์กฐ๊ธ ๊ฐ์ ํด
๊ฑฐ์ง ์์ฑ์ ๋ํด ์ฃ์กํฉ๋๋ค. ๊ฒฐ๊ณผ๋ฅผ๋ณด๊ณ ํ๊ธฐ์๋ ๋๋ฌด ์ด์ฌ์ด์์ต๋๋ค. :)
์์ ์ฌ๋ฌ ๋ฒ ์คํํ๊ธฐ ์ ์๋ ์ต๊ทค๋ฌ ์ฝ์ด ์ข ์์ฑ ๋๋ ํ์ดํ ์คํฌ๋ฆฝํธ (ํญ์ ์ด๋ฌํ ๊ฒ)๋ฅผ ๋ค์ด๋ก๋ํ๋ ๋ฐ ์ฑ๊ณตํ์ง ๋ชปํ์ง๋ง ์ฒ์์๋ ์คํจํ๊ณ ๋ ๋ฒ์งธ์๋ ์ฑ๊ณตํ๊ณ ์ ๊ฑฐํ๋ ๊ฒ์ ์์์ต๋๋ค. ๋ด ์๋ ์ฌ์ด์ ์บ์๊ฐ ์์ผ๋ฏ๋ก ์๋ํ๋ค๊ณ ์๊ฐํ์ต๋๋ค.
๊ธ์, ์ง๊ธ์ ๋๋ก๋ ์๋ํ๊ณ ๋๋ก๋ ์๋ํ์ง ์๋ ๊ฒฝ์ฐ๋ ์์ต๋๋ค (ํต์ผ๋ก ์ธํด ์ ์ฒด ๋ฏธ์ค๊ฐ ์๋๊ฑฐ๋ ์ธํฐ๋ท ์ฐ๊ฒฐ์ด ๋๋ฌด ๋๋ฆฝ๋๋ค ...)
CI ๋น๋์์๋์ด ๋ฌธ์ ๋ฅผ ๊ฒช๊ณ ์์ต๋๋ค. ๋ง์ ํ ์คํธ ๋์ ๋ง์นจ๋ด ๋ก์ปฌ์์๋ ์ฌํ ํ ์์์์ต๋๋ค.
๋ค์ ๋งํ์ง๋ง, ๋๋๋ก ์๋ํ์ง๋ง ๋ค์ ์ค๋ฅ ์ค ํ๋์ ํจ๊ป ์์ฃผ ์คํจํฉ๋๋ค (์ด๋๊ฐ์ ์ผ์ข ์ ๊ฒฝ์ ์กฐ๊ฑด์ด์๋ ๊ฒ์ฒ๋ผ ๋ณด์ ๋๋ค).
ENOENT: no such file or directory, lstat 'cache/directory/some-file'
EEXIST: file already exists, mkdir 'package-name'
GitHub์ ๊ฐ์ธ ์ ์ฅ์์์ ์ง์ ์ค์นํ๋ ํ๋์ ํจํค์ง๋ก ๋ถ๋ฆฌํ์ต๋๋ค. ํฅ๋ฏธ๋กญ๊ฒ๋ ์ค๋ฅ ๋ฉ์์ง์์ ์ฐธ์กฐ๋๋ ํจํค์ง๋ ํญ์์ด ํจํค์ง์ ์ข ์์ฑ์ ๋๋ค (๊ฐ์ธ ์ ์ฅ์๋ ์๋์ง๋ง ํญ์ GitHub์์ ์ง์ ์ค์นํ๋ ๋ ๋ค๋ฅธ ํจํค์ง์ ๋๋ค). ๋ฐ๋ผ์ ์ฌํ ์ฌ๋ก ์ค ํ๋๋ GitHub ์ ์ฅ์ (๋น๊ณต๊ฐ ์ผ ํ์๋ ์์)์์๋ ์ค์น๋ ํ์ ์ข ์์ฑ์ด์๋ ๋น๊ณต๊ฐ GitHub URL์์ ํจํค์ง๋ฅผ ์ค์นํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
์ด๊ฒ์ด ์ ํ ๋์์ด๋๋์ง ํ์คํ์ง ์์ต๋๋ค ... ์ ๊ฐ ํ ์์๋ ๋ชจ๋ ๋ฐฉ๋ฒ์ผ๋ก ๋์์ ๋๋ฆฌ๊ฒ ์ต๋๋ค.
ํธ์ง : ์ด๊ฒ์ด ๋์์ด๋๋์ง ์ฌ๋ถ๋ ํ์คํ์ง ์์ง๋ง ์ต์์ ํจํค์ง๊ฐ "git+ssh://[email protected]/org/package.git#v1.0.0"
ํ์์ผ๋ก ๋์ด๋๊ณ ์ค๋ฅ์์ ๋ค์ด๋ก๋์ค์ธ ํ์ ์ข
์์ฑ์ด https
์ด์ ๋ค์ด๋ก๋๋๋ ๊ฒ์ฒ๋ผ ๋ณด์
๋๋ค. URL์ด "https://codeload.github.com/org/package/tar.gz/ljasdf08i234098aifj"
์
๋๋ค.
๋๋ ์ด๊ฒ์ ์กฐ๊ธ ๋ ์กฐ์ฌํ๊ณ ์๋ค.
๋์ tar-fs ์ถ์ถ์์ํ ๋
๋ฆฝ ์คํ ํ ์คํฌ๋ฆฝํธ๋ฅผ ๊ตฌ์ถํ๋ ค๊ณ ํ์ง๋ง ๋ค์ด๋ก๋ ์ค์ tar ํ์ผ์ด ๊นจ์ง๋ ๋ฌธ์ ๋ผ๊ณ ์๊ฐํ๋ ๊ฒฝํฅ์ด ์์ต๋๋ค.
์ฐพ์์ด์,๋
https://github.com/yarnpkg/yarn/issues/2629#issuecomment -282745896์ ์์์ Yarn์๋ ๋ณ๋ ฌ๋ก ๋ค์ด๋ก๋ ๋ฐ ์ถ์ถ๋๋ ์ค๋ณต ํจํค์ง๊ฐ ์์ต๋๋ค.
์ค๋ณต ๋ ํญ๋ชฉ์ @angular/core/-/core-4.0.0-rc.1
๋ฐ typescript/-/typescript-2.2.1.tgz
์
๋๋ค.
๋์ ๋์์ฑ์ ํตํด ๋์ผํ ์บ์ ํด๋๋ก ๋์ ์ถ์ถ์ ์ํํฉ๋๋ค.
Yarn์ด์ด ๋ ํจํค์ง๋ฅผ ์ค๋ณต ์ ๊ฑฐํ์ง ์๋ ์ด์ ๋ฅผ ์กฐ์ฌํ๊ณ ์์ ์ฌํญ์ ๋ณด๋ด๊ฒ ์ต๋๋ค.
OS ๋๋ tar ์ถ์ถ ์์ค์๋ ๋ง๋ฒ์ด ์์ต๋๋ค.
ํํ, ์ข์ ์ง์ @bestander , ์ฐ๋ฆฌ๊ฐ ๋ง์นจ๋ด ๋ฌธ์ ๋ฅผ ๋ฐ๊ฒฌํ๊ฒ๋์ด ๊ธฐ์ฉ๋๋ค!
@bestander ๊ต์ฅํ ์ผ : https://github.com/yarnpkg/yarn/pull/3090 ๋ฐ https://github.com/yarnpkg/yarn/pull/3106 ์ ๋ชจ๋ ์คํํ์ฌ Yarn ์ฌ์ฉ์ ์ฐจ๋จํ์ต๋๋ค.
๊ฐ์ฌ!
prop-types ๋ชจ๋์ ์ค์นํ๋ ๋ฐ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์ค์นํ๋ ค๊ณ ํ ๋๋ง๋ค ๋ค๋ฅธ ํ์ผ ์ด๋ฆ์ ENOENT๊ฐ ๋ฐ์ํ์ต๋๋ค. ๋๋ฅผ ์ํด npm 5.0.2๋ฅผ ์ค์น ํ ํ ๋ฌธ์ ๊ฐ ์ฌ๋ผ์ก์ต๋๋ค.
$ yarn add prop-types
yarn add v0.21.3
[1/4] Resolving packages...
[2/4] Fetching packages...
error An unexpected error occurred: "https://registry.yarnpkg.com/prop-types/-/prop-types-15.5.10.tgz: ENOENT: no such file or directory
....
$ npm -g install npm
# whoops, looks like npm installed itself to different location than apt-get did
$ npm -v
3.5.2
# remove the cached link from shell so the right version can surface
$ hash -d npm
$ npm -v
5.0.2
$ yarn add prop-types
... properly installs prop-types as expected
@skylize ์ฐ์ฐ ์ผ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค. Yarn์ npm ํด๋ผ์ด์ธํธ๋ฅผ ์ ํ ์ฌ์ฉํ์ง ์์ผ๋ฏ๋ก npm ๋ฒ์ ์ Yarn ์คํ์ ์ ํ ์ํฅ์์ฃผ์ง ์์ต๋๋ค.
์ด๋ก ์ธํด Travis ๋น๋๊ฐ ๋ช ๊ฐ์ง ๋ค๋ฅธ ํจํค์ง๋ก ๊ฑฐ์ ๋งค๋ฒ ์คํจํฉ๋๋ค. ์์ง ํด๊ฒฐ์ฑ
์ด ์์ต๋๊น?
error An unexpected error occurred: "https://registry.yarnpkg.com/apollo-client/-/apollo-client-1.8.0.tgz: ENOENT: no such file or directory, utime '/var/lib/jenkins/.cache/yarn/v1/npm-apollo-client-1.8.0-3b5d1976a06a0f82b2fc66fe71754868193dadb9/flow-typed/npm/webpack_vx.x.x.js'".
@Redmega
์ฌ๊ธฐ์์๋ ๋์ผํ์ง๋ง ์๋ํฉ๋๋ค.
yarn install --network-concurrency 1
์ด๋ค ๋ฒ์ ์ ์ฌ์ฉํ๊ณ ์์ต๋๊น? ์ด๊ฒ์ ์ด๋ฏธ ๊ณ ์ณ์ง ์์ ์ ๋๋ค ...
Le 8 aoรปt 2017 6:37 PM, "Ben Merckx" [email protected] a รฉcrit :
@Redmega https://github.com/redmega
์ฌ๊ธฐ์์๋ ๋์ผํ์ง๋ง ์๋ํฉ๋๋ค.์์ฌ ์ค์น-๋คํธ์ํฌ ๋์์ฑ 1
โ
๋น์ ์ด ์ธ๊ธ ๋์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๊ณ ์์ต๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธํ์ธ์.
https://github.com/yarnpkg/yarn/issues/2629#issuecomment-321011749 ๋๋ ์์๊ฑฐ
์ค
https://github.com/notifications/unsubscribe-auth/AAJ0z5qFb7gSW4w14_RbFNjsn4sRYV78ks5sWI7hgaJpZM4L3JbX
.
@victornoel ๋๋ ๋ด ๋ก์ปฌ๊ณผ ๋์ผํ ์ ํจ์ค ๋จธ์ ์์ v0.27.5
์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
nightlies๋ฅผ ์๋ํ์ญ์์ค : https://yarnpkg.com/en/docs/nightly
yarn.lock ํ์ผ๊ณผ yarn install
์ ๊ฑฐํ๋ฉด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ต๋๋ค.
์ด๋ก ์ธํด Jenkins ๋น๋๊ฐ ๊ฐ๋ ์คํจํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ๋ ๋ฒ์งธ ์๋ ํ์ ์๋ํ์ง๋ง ๋์ค์ ๋ค์ ์คํจํฉ๋๋ค.
@ajcrites @Redmega @headione @benmerckx ์ด๋ฐ ์ข
๋ฅ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฉด ๋ค๋ฅธ ๋ฌธ์ ๋ฅผ ์ด์ด์ผํฉ๋๋ค. ์ด ๋ฌธ์ ๋ ํ์คํ ํด๊ฒฐ๋์์ผ๋ฏ๋ก ์ ์ฌํ ์ฆ์์ด ๋ํ๋๋๋ผ๋ ๋ฌธ์ ๋ ๋ค๋ฅธ ๋ฌธ์ ์ฌ์ผํฉ๋๋ค.
๋ค๋ฅธ ๋ฌธ์ ๋ฅผ ์ด๋ฉด ๋ฌธ์ ๊ฐ ํด๊ฒฐ ๋ ๊ฐ๋ฅ์ฑ์ด ๋ ๋ง๋ค๊ณ ํ์ ํฉ๋๋ค. :)
Node 8.5๋ฅผ ์ฌ์ฉํ์ฌ Jenkins์์ ํจํค์ง์ ๋ณ๋ ฌ ๋น๋๋ฅผ ์ํํ๋ ๋์ผํ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ํ์ฌ ๋ค๋ฅธ ๋ฒ๊ทธ๋ฅผ ์์ ํ๋ 1.0.2๊ฐ ์ถ์ ๋ ๋๊น์ง 0.27.5๋ฅผ ๊ณ ์ํด์ผํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด์จ๋ ๋น์ ์ ์ง์๊ณผ ์ผ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค :)
@floric ๋ ธ๋ 8.9.4์ ๋์ผํ ์ปจํ ์คํธ (Jenkins + Parallel)์์ ๋์ผํ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค. ๋ฌธ์ ๊ฐ ํด๊ฒฐ ๋์์ต๋๊น?
ํธ์ง : 8.11.1์ ์ฌ์ฉํ์ฌ ๋ฒ๊ทธ๊ฐ์๋ ์ต์ ๋ฒ์ ์ ์์ฌ๋ฅผ ํฌํจํ๋์ง ํ์ธํฉ๋๋ค.
@Niceplace ๋น์ ์ --mutex
์ต์
์ ์๋ํ๊ณ ์ถ์ ์ ์์ต๋๋ค : https://yarnpkg.com/en/docs/cli#toc -concurrency-and-mutex
์กฐ๋ง๊ฐ์ด๋ฅผ ํผํ๊ธฐ ์ํด ๋ ๋์ ํจํค์ง ๋ณ ์ ๊ธ์ ์ถ๊ฐ ํ ๊ณํ์ด ์์ต๋๋ค.
Yarn ์์
์์ญ์ด ํ์ฑํ ๋ ์ํ์์ monorepo์ ๋ฃจํธ์์ yarn --mutex=network
๋ฅผ ์คํํ๋ ค๊ณ ์๋ํ๋ ENOENT: no such file or directory, chmod
๋ฐ ENOENT: no such file or directory, lstat
๊ฐํ์ ์ธ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
์ผ๊ด์ฑ์ด์๋ ๊ฒ ๊ฐ๊ณ ๋ฌด์์๋ก ๋ ์ค ํ๋๋ฅผ ์ป์ต๋๋ค. (1.6.0 ๋ฐ ๋ ธ๋ 8.11.1 ๋ฐ 9.11.1)
ํนํ ์ค๋ฅ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
error An unexpected error occurred: "ENOENT: no such file or directory, lstat '/Users/federicozivolo/test/packages/foobar/node_modules/detect-port-alt'".
๊ณผ
error An unexpected error occurred: "ENOENT: no such file or directory, chmod '/Users/federicozivolo/test/packages/foobar/node_modules/jest/node_modules/.bin/jest'".
Yarn 1.7.0์ ์คํ ์ค์ด๋ฉฐ ๋น์ทํ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. Yarn์ ์ฌ๋ฌ ๋ฒ ์คํ ํ ํ ๋ง์นจ๋ด ํจํค์ง๋ฅผ ์ค์นํฉ๋๋ค.
An unexpected error occurred: "ENOENT: no such file or directory, lstat '/home/nieltg/.cache/yarn/v1/npm-npm-registry-client-8.5.1-8115809c0a4b40938b8a109b8ea74d26c6f5d7f1/lib/dist-tags/fetch.js'".
ํธ์งํ๋ค:
yarn --network-concurrency 1
ํ์ง๋ง ์ฌ์ ํ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. ๋ค์์ ์ค๋ฅ ๋ฐ yarn-error.log ํ์ผ์ ๋ ๋ค๋ฅธ ์ํ์
๋๋ค.
An unexpected error occurred: "ENOENT: no such file or directory, copyfile '/home/nieltg/.cache/yarn/v1/npm-core-js-2.5.7-f972608ff0cead68b841a16a932d0b183791814e/library/fn/date/now.js' -> '/mnt/c/Users/nieltg/Projects/React/React-16-Demo/node_modules/core-js/library/fn/date/now.js'".
Yarn 1.7.0์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋๋ ์ฌ์ ํ ๋์๊ฒ ์ผ์ด๋๋ ๋์ผํ ํ๋์ ํ์ธํ ์ ์์ต๋๋ค.
์์ ํ ๋ฌด์์์ ๋๋ค. ๋๋ก๋ ๋ฐ์ํ๊ณ ๋๋ก๋ ๊ทธ๋ ์ง ์์ต๋๋ค.
๋ง์ง๋ง์ผ๋ก๋ฐ์ ๊ฒ์ :
error An unexpected error occurred: "ENOENT: no such file or directory, lstat '/root/.yarn-cache/v1/npm-@storybook/addon-actions-3.4.5-ba0d0c0c74357c0852e0b890b40
Linux ์ฉ Windows ํ์ ์์คํ ์ Yarn 1.9.2์์์ด ์ค๋ฅ๊ฐ ์์ฃผ ๋ฐ์ํฉ๋๋ค.
์ค๋ ์ฐ๋ฆฌ๋ ํ์ดํ ๋ผ์ธ์ด yarn install
์ ๋ณ๋ ฌ๋ก ์คํํ๋ Jenkins CI์ ์์๋ ํจํค์ง์ ์ ์ฌํ ๋ฌธ์ ๋ฅผ ๊ฒช์์ต๋๋ค. ๋ฉฐ์น ์ ์๋ ์ ์๋ํ์ต๋๋ค.
yarn install --network-concurrency 1
์์ ๋์์ต๋๋ค ( ์ฃผ์์ ์ธ๊ธ ๋จ ). ์ฑ๋ฅ์ ํฌ๊ฒ ์ ํ๋์ง ์์์ต๋๋ค : ~ 7 ์ด-> ~ 8 ์ด.
์ ์ด๊ฒ์ด ๋ซํ์ต๋๊น? ์ฌ์ ํ ๋ฐ์ํฉ๋๋ค.
Toms-MacBook-Pro-2:design-to-code tommedema$ yarn install
yarn install v1.9.4
[1/4] ๐ Resolving packages...
[2/4] ๐ Fetching packages...
[3/4] ๐ Linking dependencies...
error An unexpected error occurred: "ENOENT: no such file or directory, lstat '/Users/tommedema/projects/vg/design-to-code/packages/vgcli/node_modules/fs-extra'".
info If you think this is a bug, please open a bug report with the information provided in "/Users/tommedema/projects/vg/design-to-code/yarn-error.log".
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
Toms-MacBook-Pro-2:design-to-code tommedema$ yarn install --network-concurrency 1
yarn install v1.9.4
[1/4] ๐ Resolving packages...
[2/4] ๐ Fetching packages...
[3/4] ๐ Linking dependencies...
[4/4] ๐ Building fresh packages...
โจ Done in 24.85s.
์ ๊ฒฝ์ฐ์๋ ๋ ๊ฐ์ ํจํค์ง์์ yarn remove fs-extra
๋ฐ yarn add fs-extra
๋ฅผ ์ํ ํ ํ์ด ์ข
์์ฑ์ ํจ๊ณผ์ ์ผ๋ก ์
๊ทธ๋ ์ด๋ ํ ํ ์ฌ๋ผ์ก์ต๋๋ค.
์๋ ํ์ธ์, ๋ญ๊ฐ ์ฐพ์ ๊ฒ ๊ฐ์์.
fs
๋ฐ rxjs
์ฌ์ฉํ์ฌ ์ง์ ๋ ๋๋ ํ ๋ฆฌ์์๋ ํ์ผ์ ์ฌ๊ท ์ ์ผ๋ก ๋์ดํ๋ ์ฝ๋๋ฅผ ์ฌ์ฉํ๊ณ ์์๊ณ lstat
๊ธฐ๋ค๋ฆฌ์ง ์์ผ๋ฉด ์คํจ ํ ๊ฐ๋ฅ์ฑ์ด ์์์ ๋ฐ๊ฒฌํ์ต๋๋ค. ๋ค๋ฅธ lstat
๋ฅผ ํธ์ถํ๊ธฐ ์ ์ lstat
ํธ์ถ์ ์๋ฃํด์ผํฉ๋๋ค.
ํ๊ฒฝ์ด ์ํฅ์ ๋ฐ๋์ง ์ฌ๋ถ๋ฅผ ํ
์คํธํ๊ธฐ ์ํด ๊ฐ๋จํ NPM ํจํค์ง async-dirtree-test๋ฅผ ๋ง๋ค์์ต๋๋ค . ์ ๋ WSL์ ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ ๋์์ฑ์ด ๋ฎ์ ๊ฒฝ์ฐ์๋ node_modules
์ ๊ฐ์ ํ์ ๋๋ ํฐ๋ฆฌ๊ฐ ๋ง์ ๋๋ ํฐ๋ฆฌ๋ฅผ ์ฒ๋ฆฌํ๋ ๋์ ์คํจ ํ ๊ฐ๋ฅ์ฑ์ด ์์์ ๋ฐ๊ฒฌํ์ต๋๋ค.
๊ธ์, ๋๋์ด ๋ฌธ์ ๊ฐ WSL์ ํน์ ํ ๊ฒ์ธ์ง ์ฌ๋ถ๋ฅผ ์ฌ์ ํ ์ ์ ์์ต๋๋ค. ์ง๊ธ์ Linux, Mac ๋ฑ๊ณผ ๊ฐ์ ๋ค๋ฅธ ํ๊ฒฝ์์ ํ ์คํธ ํ ์ ์์ต๋๋ค.
@nieltg ๋ค๋ฅธ ์ฌ๋๋ค์ ํ์ฑํ๋ ๋ฐ ๋์์ด ๋ ์์๋ ๊ด์ฐฐ์ ๊ณต์ ํ๊ณ ์ถ์์ต๋๋ค. ์ ๋ WSL์์ Docker CE๋ฅผ ์ฌ์ฉํ๊ณ Windows ์ฉ Docker๋ฅผ ํธ์คํธ๋ก ์ฌ์ฉํ๊ณ ์์ผ๋ฏ๋ก WSL์์ Docker๋ก ์์ ํ ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋๊ปด์ง์ง๋ง ์ค์ ๋ก๋ ํธ์คํธ๊ฐ Windows ์ธ๊ณ์์ ๊ธฐ๋ณธ์ ์ผ๋ก ์๋ํ๋ฏ๋ก ์ค์ ๋ก ๋ด Dockerfile์ / c / foobar๋ฅผ c : / foobar (Docker ์์ง์ ๊ฒฝ์ฐ)). ์ด๊ฒ์ ๋ฐ์ธ๋ฉ์ ์ฌ์ฉํ ๋ ๋งค์ฐ ๊ด๋ จ์ด ์์ต๋๋ค (์ปจํ ์ด๋ ๋ด๋ถ์์ ์ปจํ ์ด๋ ๋ด๋ถ์ / usr / src๊ฐ ๊ถ๊ทน์ ์ผ๋ก c : / src / foobar์ ์๋๋ก ๋ก์ปฌ ํด๋๋ฅผ ๋ง์ดํธํ๊ณ ์์ต๋๋ค (๋ด Dockerfile์ ๋ฐ์ธ๋ฉ์ / c /๋ก ํ์ํ์ง๋ง). src / foobar : / usr / src (๊ฒฝ๋ก์์ ์๋ ๋ฒ์ญ์ ๋ณด์๊ฒ ์ต๋๊น?)
์ปจํ
์ด๋ ๋ด๋ถ์ ๋ก์ปฌ ํด๋ ์ค ํ๋์ yarn install
WSL์์ ์ง์ ์ํํ๋ ๊ฒ๊ณผ ๋์ผํ ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ธฐ ๋๋ฌธ์์ด ๊ตฌ๋ถ์ด ์ค์ํฉ๋๋ค (Docker ๊ด๋ จ ์์).
๋ฐ๋ฉด์ .... ๋ด๊ฐ mkdir /tmp/src && cp ./package.json /tmp/src/ && cd /tmp/src && yarn install
์ด๋ฉด ๋ชจ๋ ๊ฒ์ด ์๋ฒฝํ๊ฒ ์ฑ๊ณตํ๊ณ mv /tmp/src/node_modules /c/src/foobar/
์๊ณ ๊ด์ฐฎ์ต๋๋ค. ๊ทธ๋์ ์ด๊ฒ์ด ํ์ฌ์ ํด๊ฒฐ ๋ฐฉ๋ฒ์
๋๋ค. /tmp
๋ ๋์ปค ์ ์ฅ์๋ก ์กด์ฌํ๋ค๋ ์ ์ ์ ์ํ์ญ์์ค (์ค์ ๋ก ํ์ผ์ ํํฐ์
์ด๊ธฐ ๋๋ฌธ์ ๋ชจ๋ IO๊ฐ OS์ ๋จ์ผ ํ์ผ์ฒ๋ผ ๋ณด์
๋๋ค).
์ฌ๊ธฐ์์ ๋์ปค๋ฅผ ํฌํจํ๋ ๊ฒ์ด ์ด์์ ์ด์ง ์๋ค๋ ๊ฒ์ ์๊ณ ์์ง๋ง IO ์์ฒด๊ฐ ์๋๊ณ ๋ค๋ฅธ ์ฌ๋๋ค์ด์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ๋์์ด ๋ ์ ์๊ธฐ ๋๋ฌธ์ ๋น ๋ฅธ ํ์ผ ์ฒ๋ฆฌ๊ฐ ๋ฌธ์ ๊ฐ ๋ ์ ์์์ ์์ฌํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
... ์ฐ๋ง ํด์ ธ์ ๋๋ฌด ๋นจ๋ฆฌ ์ ์ถ๋์์ต๋๋ค. ์ด์จ๋ ๋ด ๋๋๋ ํ์ฌ ๋ค๋ฅธ ๊ณณ์ ์์ง๋ง ๋์ค์ ๋ค์ ์์ ๋น์ ์ ์ ๊ทผ ๋ฐฉ์๊ณผ Docker๋ฅผ ์ฌ์ฉํ์ฌ ํ ์คํธ๋ฅผ ๊ณ ์ํ์ฌ ์ถ๊ฐ ๊ฒฐ๋ก ์ ๋์ถ ํ ์ ์๋์ง ํ์ธํ๊ฒ ์ต๋๋ค.
๋ค์ ์ด๋ค
์ต๊ทผ์ Azure Devops (์ด์ Visual Studio Team Services)์์ CI ๋น๋๋ฅผ ์คํํ๋ฉด์ yarn 1.10.1์ ์ฌ์ฉํ์ฌ ๋์ผํ ์ข ๋ฅ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ธฐ ์์ํ์ต๋๋ค.
์คํจํ ์ค์ ์ข
์์ฑ์ ๋ด๊ฐ ์ ์์๋ ์ต์ ์ ๋ฌด์์ ์ธ ๊ฒ์ฒ๋ผ ๋ณด์ด์ง๋ง yarn install
๋ ENOENT: no such file or directory, open '/usr/local/share/.cache/yarn........
์ค๋ฅ๋ก ์ธํด ๊ฐํ์ ์ผ๋ก ๋จ์ด์ง๊ณ ์์ต๋๋ค. ํ ๋ฒ ๋น๋๊ฐ ์๋ํ๊ณ ๋ค์ ๋ฒ์๋ ์คํจํฉ๋๋ค.
yarn install --network-concurrency 1
์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ์ฐ๋ฆฌ์๊ฒ ํจ๊ณผ๊ฐ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
@ Marclev78 ๊ฐ์ ์ค๋ฅ์ด์ง๋ง yarn install --network-concurrency 1
๊ฐ ๋๋ฅผ ์ํด ์๋ํ์ง ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
@ Marclev78 ์ฌ๊ธฐ์์ Azure Devops์์ yarn 1.10.1์ ์ฌ์ฉํ๊ณ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
Error: https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz: ENOENT: no such file or directory, utime 'C:\Users\grpsshagent\AppData\Local\Yarn\Cache\v1\npm-core-js-1.2.7-652294c14651db28fa93bd2d5ff2983a4f08c636\fn\string\pad-left.js'
๋ก์ปฌ์์ ๋ชจ๋ ๊ฒ์ด ์์๋๋ก ์๋ํฉ๋๋ค.
๋๋ ๋จ์ํ ๋๋์ด ์ค๋ฅ๋ฅผ๋ณด๊ณ ์๋ค๊ณ ๋งํ๊ธฐ ์ํด ์ฌ๊ธฐ์ ์์ต๋๋ค.
error An unexpected error occurred: "ENOENT: no such file or directory, chmod '/usr/local/opt/asdf/installs/nodejs/8.12.0/.npm/bin/atob'".
๋ถํํ๋ ์ ๋ ๊ธ๋ก๋ฒ ๋ ธ๋ ๋ฐ์ด๋๋ฆฌ์ ๋ํ ์์ฌ๋ฅผ ๋ฒ๋ฆฌ๊ณ ์ด๊ฒ์ด ์์ ๋ ๋๊น์ง npm์ผ๋ก ๋์ ๊ฐ์ผํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ํ๊น๊ฒ๋์ด ๋ฌธ์ ๋ ์ต๊ทผ CI ๋น๋๋ฅผ ๊ดด๋กญํ๊ธฐ ์์ํ์ต๋๋ค. (
@rainabba ์ ์์ด WSL
์์ ์ ์๊ฒ ํจ๊ณผ์ ์ด์์ต๋๋ค.
์ฐ๊ธฐ ๋ฐ ์ฝ๊ธฐ ์์ ๋ ๋ค๋ฅด๊ฒ ์๋ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ด ํดํน์๋ ๋ถ๊ตฌํ๊ณ ๋ ธ๋์ fs.writeFile (๋ธ๋ฃจ ๋ฒ๋ ์ฝ์์ผ๋ก ๋ํ ๋จ)์ ํธ์ถํ๋ ๋์ ์์ฃผ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. ๋ชจ๋ ๋จ์ผ ์ธ์คํด์ค์์ ์ฐ๊ธฐ ์ค๋ฅ๊ฐ ๋ฐ์ํ ์งํ ํ์ผ์ด ์กด์ฌํ๋์ง ํ์ธํ ์ ์์ต๋๋ค.
๊ถ๊ทน์ ์ผ๋ก ๋ค์์ ํธ์ถํ๋ fs.writeFile ()์ ๋ฌธ์์ด (XML ํ์ผ ์ฝํ ์ธ )์ ๋ณด๋ด๊ณ ์์ง๋ง ์ถ๊ฐ ๋๋ฒ๊น ์ผ๋ก ์ฌ์ฉ์ ์ง์ ๋น๋๋ฅผ ์ค์ ํ๋ ๋ฐ ํ์ํ ๋์ ์ ์ํ ํ ์ค๋น๊ฐ๋์๋์ง ํ์คํ์ง ์์ต๋๋ค. ์ด C ++ ํ๋ก์ ํธ์ ์ถ๋ ฅ์ ํตํด ๋ ธ๋ ๋๋์ด C ++ ๋ชจ๋์ ๋ฐ๋ผ ์ณ์ ๋๋์ด ์ค์ ๋ก ์ด๋์ธ์ง ์ ํํ ํ์ธํ ์ ์์ต๋๋ค.
๊ฒฐ๋ก ์ ์ฐ๊ธฐ๊ฐ ์คํจํ์ง ์์์ง๋ง ๋ ธ๋๊ฐ ๋ฏฟ๊ณ ์๊ธฐ ๋๋ฌธ์ ๋์๊ฒ ์๋ฏธ๊ฐ์๋ ์๋๋ฆฌ์ค๋ c + ํ๋ฌ์ค ๋ชจ๋์ด ์ฑ๊ณตํ๊ณ ์๋ค๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ๋ด๋ถ์ ์ผ๋ก ํ์ผ์ ํ์ธํ๊ณ ์คํจํ ๋ค์ ๋ณด๊ณ ์๊ฐ ๋ ธ๋๋ก ๋์๊ฐ๋ ๋๋์ด ๋ค์ง ์์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ค์ ์ฐ๊ธฐ๊ฐ ๋ฐ์ํ์ฌ ํ์ผ์ ํ์ธํ๋ ค๊ณ ํ ๋ ๊ฑฐ๊ธฐ์ ์๊ณ ์ค๋ฅ๊ฐ ์๋ฏธ๊ฐ ์์ต๋๋ค.
https://github.com/nodejs/node/blob/master/src/node_file.cc#L1795
@bestander ๋ฌธ์ ๋ฅผ ๋ค์ ์ด ์์๋ ๋ฐฉ๋ฒ์ด ์์ต๋๊น? ๋ถ๋ช ํ ์ด๊ฒ์ ๊ณ ์ ๋์ด ์์ง ์์ผ๋ฉฐ ๋ง์ ์ฌ๋๋ค์๊ฒ ์ํฅ์ ๋ฏธ์นฉ๋๋ค.
์ด๋ yarn 1.12 ๋ฐ Azure Pipelines์์ ์ฌ์ ํ ๋ฐ์ํ๋์ง ํ์ธํฉ๋๋ค.
๋ชจ๋ ํ์ธ ํด์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค.
ํด๋น ์ค๋ฅ์ ๋ํ ์ฌ๋ฌ ๊ฐ์ง ์ด์ ๊ฐ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋ฌธ์ ๋ฅผ ๋ค์ ์ด๊ฒ ์ต๋๋ค. ๊ทธ๋๋ ๋๋ฒ๊น
์์ํ ์ปค๋ฎค๋ํฐ ๋์๋ง์ด ํ์ํฉ๋๋ค.
์์ฌ 1.11์์๋ ๋ฐ์ํ์ง๋ง 1.10์์๋ ๋ฐ์ํ์ง ์์ต๋๋ค.
@bestander- ๊ด๋ จ? https://github.com/yarnpkg/yarn/issues/6312
๊ทธ๋ ๋ค๋ฉด ๊ฑฐ๊ธฐ์ ๋ช ๊ฐ์ง ํ๋ฅญํ ์ฌํ ์์ ์ด ์์ต๋๋ค.
๋๋์ด ๋ฌธ์ ์ ์ํฅ์๋ฐ์ต๋๋ค.
Windows 10 / WSL
"ENOENT: no such file or directory, lstat '/mnt/c/Users/<username>/.cache/yarn/v4/<random_file_in_random_package>"
@limonte WSL์๋ npm install / yarn install์ ์คํํ ๋ ๋ฌด์์๋ก ์ ์ฌํ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค๋
์ฐ๋ฆฌ๋ ๋ํ Extracting tar content of undefined
๋ฌธ์ ๋ฅผ๋ณด๊ณ ์์ต๋๋ค.
error https://registry.yarnpkg.com/eslint/-/eslint-4.19.1.tgz: Extracting tar content of undefined failed, the file appears to be corrupt: "ENOENT: no such file or directory, stat '/tmp/yarncache.KTKNZ/v4/npm-eslint-4.19.1-32d1d653e1d90408854bfb296f076ec7e186a300/node_modules/eslint/lib/rules/no-compare-neg-zero.js'"
์ง๊ธ๊น์ง --network-concurrency 1
์ต์
์ผ๋ก ํ๋์ ๋์ ๋คํธ์ํฌ ์ฐ๊ฒฐ ๋ง ์ฌ์ฉํ์ฌ์ด ๋ฌธ์ ๋ฅผ ์ํํ์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๊ฒ์ ์ผ์์ ์ธ ํด๊ฒฐ์ฑ
์
๋๋ค.
node:11.5.0-alpine
์์๋ ๋ฌธ์ ๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
error An unexpected error occurred: "ENOENT: no such file or directory, lstat '/app/node_modules/<random_pacakge>
๋ฌธ์ ๊ฐ git ์ ์ฅ์ ๋ฒ์ ์ ํจํค์ง์ ์ฐ๊ฒฐํ๋ ๊ฒ๊ณผ ๊ด๋ จ์ด์๋ ๊ฒ ๊ฐ์์ต๋๋ค.
package.json
{
"dependencies": {
"react-navigation-core": "https://github.com/react-navigation/react-navigation-core",
"react-navigation-hooks": "https://github.com/react-navigation/react-navigation-hooks"
}
}
rm -rf node_modules && yarn cache clean && yarn
network-concurrency 1
์ค์ ํ๋ฉด ๋งค๋ฒ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋ฉ๋๋ค.
npm install
๋ ์๋ํฉ๋๋ค.
์ข ์์ฑ ๋ชฉ๋ก์์ ํจํค์ง๋ฅผ ์ ๊ฑฐํด๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ง ์์ผ๋ฉฐ ํด๋น ํจํค์ง์ ๊ฒ์ ๋ npm ๋ฒ์ ์ ์ฌ์ฉํ์ง๋ ์์ต๋๋ค.
๋งค๋ฒ ๋ค๋ฅธ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ค๋ฅธ ํ์ผ์ ๋ฌด์์๋ก ๋ฐ์ํ๊ณ ์ฝ๊ฐ ๋ค๋ฅธ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
error https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz: Extracting tar content of undefined failed, the file appears to be corrupt: "ENOENT: no such file or directory, chmod '/home/cameron/.cache/yarn/v4/npm-core-js-1.2.7-652294c14651db28fa93bd2d5ff2983a4f08c636/node_modules/core-js/library/modules/es6.reflect.apply.js'"
ENOENT: no such file or directory, chmod
ENOENT: no such file or directory, stat
ENOENT: no such file or directory, open
EEXIST: file already exists, mkdir
info There appears to be trouble with your network connection. Retrying...
์ค์ ๋ก package.json์ ์ฌ์ฉํ์ฌ ์ฌํํ๋ ค๊ณ ์๋ํ์ง๋ง ์ฒซ ๋ฒ์งธ ์๋์์ ์ค๋ฅ๊ฐ ๋ํ๋ฌ์ต๋๋ค.
WSL ํ์ผ ์์คํ ์ ์ด๋ฏธ ์กด์ฌํ๋ NTFS FS์ ์ํธ ์์ฉํ๋ ๊ณ์ธต์ ๋ฌด์์ ๋๊น?
๋ง์ดํธ ๋ ๋๋ผ์ด๋ธ (์ผ๋ฐ์ ์ธ ์์ ๊ฒฝ์ฐ / c ๋๋ / mnt / c) ๋๋ ํด๋น ๋ง์ดํธ ์ค ํ๋ ์ธ๋ถ์์์ด ์ค๋ฅ๊ฐ ํ์๋ฉ๋๊น? ๋์ (์ : ~ /.)์ ํ ์คํธํ๊ณ ์ฐจ์ด์ ์๋ณด๊ณ ํฉ๋๊น?
๋ด ์ง๊ฐ์ด ์์๋ฆฌ๊ฐ ๋์ง๋ง ๋์ปค ๊ฒฝํ์ ๋ฌธ์ ๊ฐ์์ ์ ์์ผ๋ฉฐ์ด๋ฅผ ๋ ๋ฆฝ์ ์ผ๋ก ํ์ธํด์ผํฉ๋๋ค.
[2/4] ํจํค์ง ๊ฐ์ ธ ์ค๋ ์ค ...
์ค๋ฅ https://registry.yarnpkg.com/smartwrap/-/smartwrap-1.0.10.tgz : ์ ์๋์ง ์์ tar ์ฝํ
์ธ ์ถ์ถ ์คํจ, ํ์ผ์ด co๋ก ๋ํ๋ฉ๋๋ค.
rrupt : "ENOENT : ํด๋น ํ์ผ์ด๋ ๋๋ ํ ๋ฆฌ๊ฐ ์์ต๋๋ค. 'C : \ Users \ Administrator \ AppData \ Local \ Yarn \ Cache \ v4 \ npm-smartwrap-1.0.10-873ef350d
4ee1262fed4a80a55634d86ae1faf48 \ node_modules \ smartwrap \ ejq ' "
info์ด ๋ช
๋ น์ ๋ํ ์ค๋ช
์๋ฅผ ๋ณด๋ ค๋ฉด https://yarnpkg.com/en/docs/cli/global ์ ๋ฐฉ๋ฌธ
๋ง์ดํธ ๋ ๋๋ผ์ด๋ธ (์ผ๋ฐ์ ์ธ ์์ ๊ฒฝ์ฐ / c ๋๋ / mnt / c) ๋๋ ํด๋น ๋ง์ดํธ ์ค ํ๋ ์ธ๋ถ์์์ด ์ค๋ฅ๊ฐ ํ์๋ฉ๋๊น? ๋์ (์ : ~ /.)์ ํ ์คํธํ๊ณ ์ฐจ์ด์ ์๋ณด๊ณ ํฉ๋๊น?
์ด๋ฐ ์ผ์ด ์ผ๊ด๋๊ฒ ์ฌํ ๊ฐ๋ฅํ ๊ฒฝ์ฐ๊ฐ ์์ต๋๊น? ๊ทธ๊ฒ์ ๋์๊ฒ ๊ฝค ๋ฌด์์ ์ ์ด์ง๋ง ๋ง์ดํธ ๋ ๋๋ผ์ด๋ธ์์ yarn add
-ing์ ๋ชจ๋ ์ํํ๋ฉฐ ์์ฃผ ๋ฐ์ํฉ๋๋ค.
๋ง์ดํธ ๋ ๋๋ผ์ด๋ธ์ ~
๋ชจ๋์์ https://github.com/yarnpkg/yarn/issues/2629#issuecomment -451638917์ ์ฌํ ํ ์์์์ต๋๋ค.
๋๋ ๋ํ https://github.com/yarnpkg/yarn/issues/2629#issuecomment -282745896์ ์ฌํํ๋ ค๊ณ ์๋ํ์ง๋ง ๋ง์ง๋ง ํจํค์ง๋ฅผ ๊ฐ์ ธ ์ค๋ ๋ฐ ๊ณ์ ์คํจํ์ต๋๋ค.
์ง๋ ๋ช ์๊ฐ ๋์ ๊ฐ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค. yarn์ ๋ฌด์์๋ก ๋ค์ํ ํจํค์ง๋ฅผ ์ค์นํ์ง ๋ชปํ์ฌ ์์์ ์ธ๊ธ ํ ์ค๋ฅ๋ฅผ ๋ณด์ฌ์ค๋๋ค.
์์ฌ ์บ์๋ฅผ ์ฌ์ค์ ํ๊ณ ๋คํธ์ํฌ ๋์์ฑ 1๋ก ๋ค์ ์ค์น ๋ฐ ์คํ์ ์๋ํ์ง๋ง ๋ ๋ค ์๋ํ์ง ์์์ต๋๋ค.
๋๋ฅผ ์ํด ๋ฌธ์ ๋ฅผ ํด๊ฒฐ ํ ๊ฒ์ ๋ค๋ฅธ ๋คํธ์ํฌ ๋ก
์ด ๋ฌธ์ ๊ฐ ๋งค์ฐ ํน์ ํ ๋คํธ์ํฌ ์ค๋ฅ์ ๋ํด ์๋ชป ์ฒ๋ฆฌ ๋ ๋ณต๊ตฌ์ ๊ด๋ จ์ด์์ ์ ์๋ค๋ ์ง๊ฐ์ด ์์ต๋๋ค. ๋์ค์ ์ดํด ๋ณด๊ฒ ์ต๋๋ค.
์ด์ ๋๊ธ์ ํ์ธํ ์ ์์ต๋๋ค. network-concurrency
์ ๋์์ด๋์ง ์์ต๋๋ค. ์ ํ ํซ์คํ์ผ๋ก ์ ํํ๋ฉด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ต๋๋ค. ๋ด ํ๊ฒฝ : Windows 10 (Linux ํ์ ์์คํ
-Ubuntu)
์ ๋ WSL์ ์์ผ๋ฉฐ (์ฝ๊ฐ ์ด์ํ๊ฒ) ์ค์ฒฉ ๋ ํด๋ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง geo-tz
ํจํค์ง์์์ด ๋ฌธ์ ๋ฅผ๋ณด๊ณ ์์์ต๋๋ค. --network-timeout
๋ฐ --network-concurrency
๋ช ๊ฐ์ง ์๋ํ์ง๋ง ์๋ฌด๊ฒ๋ ์ป์ง ๋ชปํ์ต๋๋ค. ๊ทธ๋ฌ๋ Windows์์ ๊ธด ๊ฒฝ๋ก๋ฅผ ํ์ฑํํ๋ฉด (์ด ์ํผ ์ ์ ๊ฒ์๋ฌผ ์ฐธ์กฐ) ์ด์ ์ ์์ ์ผ๋ก ์๋ํฉ๋๋ค. ์๋ง๋ ์ด๊ฒ์ WSL์ ๋ค๋ฅธ ์ฌ๋๋ค์๊ฒ ๋์์ด ๋ ์ ์์ต๋๋ค. ๋ด๊ฐ ๋๋ฌด ๋นจ๋ฆฌ ๋ง์ฒ๋ผ ํธ์ง ๊ฐ์ต๋๋ค. ์๋ํ๊ณ ์ข
์์ฑ ์ฐ๊ฒฐ์ด ๋ ๋น ๋ฅด์ง ๋ง ์ด์ ๋ ๋์ผํ ์ค๋ฅ๊ฐ ๋ค์ ํ์๋ฉ๋๋ค.
์ฌ์ ํ CI๋ฅผ ๊นจ๊ณ ....
Jenkins ์ฌ๋ ์ด๋ธ ๋ ธ๋ ์ญํ ์ํ๋ Debian Linux ์์คํ ์์ ์คํ๋๋ Yarn 1.13.0์๋ ๋์ผํ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ๋ก์ปฌ ์ ์ ์ฅ์ ์๋ฒ๊ฐ ์์ผ๋ฏ๋ก ๋น๋ํ๋ ๋์ ๊ณต์ฉ ์ธํฐ๋ท ์ ์ฅ์ ์๋ฒ์์ ๋ฌผ๋ฆฌ์ ๋ค์ด๋ก๋๊ฐ ์๊ฑฐ๋ ๊ฑฐ์ ์์ต๋๋ค.
yarn install v1.13.0
[1/4] Resolving packages...
[2/4] Fetching packages...
error An unexpected error occurred: "http://sqrep01.rsint.net:4873/lodash/-/lodash-4.17.10.tgz: ENOENT: no such file or directory, open '/home/jenkins/.cache/yarn/v4/npm-lodash-4.17.10-1b7793cf7259ea38fb3661d4d38b3260af8ae4e7/node_modules/lodash/.yarn-tarball.tgz'".
์ค์ ํ์ผ ์ ๋ฆฌํฌ์งํ ๋ฆฌ ์๋ฒ์ ํ์ผ ์์คํ
๋ชจ๋์ ์กด์ฌํฉ๋๋ค.
๋น๋๋ฅผ ๋ค์ ์์ํ๋ฉด ๋น๋๊ฐ ์ฑ๊ณตํ๊ฑฐ๋ ๋ค๋ฅธ (๋ฌด์์) ํ์ผ๋ก ์ธํด ์คํจ ํ ์ ์์ต๋๋ค.
๊ธฐ๋ณธ ๋คํธ์ํฌ ๋์์ฑ ์ค์ ์ ๋ณ๊ฒฝํ์ง ์์์ต๋๋ค.
Ditto- 1.14
์์๋ ์ฌ์ ํ ๋ฌธ์ ์
๋๋ค.
Arguments:
/home/jeff/n/bin/node /usr/share/yarn/bin/yarn.js install
PATH:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/mnt/c/Windows/System32:/mnt/c/Windows:/mnt/c/Windows/System32/wbem:/mnt/c/Windows/System32/WindowsPowerShell/v1.0:/mnt/c/Program Files (x86)/NVIDIA Corporation/PhysX/Common:/mnt/c/Windows/System32:/mnt/c/Windows:/mnt/c/Windows/System32/wbem:/mnt/c/Windows/System32/WindowsPowerShell/v1.0:/mnt/c/Windows/System32/OpenSSH:/mnt/c/Program Files/NVIDIA Corporation/NVIDIA NvDLISR:/mnt/c/Program Files/Git/cmd:/mnt/c/Users/jkono/AppData/Local/Microsoft/WindowsApps:/mnt/c/Users/jkono/AppData/Local/hyper/app-2.1.2/resources/bin:/mnt/c/Users/jkono/AppData/Local/Programs/Microsoft VS Code/bin:/home/jeff/n/bin
Yarn version:
1.14.0
Node version:
10.15.1
Platform:
linux x64
Trace:
Error: ENOENT: no such file or directory, scandir '/mnt/c/Users/jkono/dev/PROJECT/node_modules/@storybook/addon-links/src'
๋ํ:
โ yarn cache dir
/mnt/c/Users/jkono/home/.cache/yarn/v4
์ด๊ฒ์ ๋งค์ฐ ์ฑ๊ฐ์ ์ผ์ ๋๋ค. ์ฐ๋ฆฌ๋ ๋งค์ผ ๋ก์ปฌ ๋ฐ CI ์์คํ ์์ ์ด๊ฒ์ ๋ด ๋๋ค.
์ด๊ฒ์ด CI์์๋ ํญ์ ์ผ์ด๋๊ณ ์์์ ์ฐ๋ฆฌ์๊ฒ๋ ํ์ธ
์๋
ํ์ธ์.์ด ๋ฌธ์ ๊ฐ CI์์ ๋ฐ์ ํจ์ ํ์ธํฉ๋๋ค.
์ด๊ฒ์ ๋ฌธ์ ์ ์ ์
๋๋ค.
์ค๋ฅ https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz : ์ ์๋์ง ์์ tar ์ฝํ ์ธ ์ถ์ถ ์คํจ, ํ์ผ์ด ์์๋ ๊ฒ ๊ฐ์ต๋๋ค. "ENOENT : ํด๋น ํ์ผ์ด๋ ๋๋ ํฐ๋ฆฌ๊ฐ ์์ต๋๋ค. chmod '/usr/local/share/.cache/yarn/v4/npm-core-js-1.2.7-652294c14651db28fa93bd2d5ff2983a4f08c636/node_modules/core-js/es7/regexp.js' "
info์ด ๋ช ๋ น์ ๋ํ ์ค๋ช ์๋ฅผ ๋ณด๋ ค๋ฉด https://yarnpkg.com/en/docs/cli/install ์ ๋ฐฉ๋ฌธ
์ค๋ ์คํ ์์ค ํ๋ก์ ํธ ์ค ํ๋์ ๋์ผํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๊ธฐ ์์ํ์ต๋๋ค.
์ฌ๊ธฐ์์ ์คํจํ ๋น๋๋ฅผ ๋ณผ ์ ์์ต๋๋ค.
https://travis-ci.com/quid/refraction/builds/103692106
๊ทธ๋ฆฌ๊ณ ์ฑ๊ณตํ ๊ฒ ( --network-concurrency 1
) :
https://travis-ci.com/quid/refraction/builds/103693682
๋ฌธ์ ์ง๋จ์ ๋์์ด๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
์ ์ฅ์์ ์์ค ์ฝ๋๋ ๋ค์ ์์น์ ์์ต๋๋ค.
https://github.com/quid/refraction
์๋ง๋ ์ด๊ฒ์ ๋๊ตฐ๊ฐ๋ฅผ ๋์ธ ๊ฒ์
๋๋ค.
Jenkins CI์์ ๋ฌธ์ ๋ Jenkins๊ฐ ์ฑ์ ๋ํ ๋ณ๋ ฌ ๋น๋๋ฅผ ํธ๋ฆฌ๊ฑฐํ๋ค๋ ๊ฒ์
๋๋ค. ์ฆ, ๋ ๊ฐ ์ด์์ ์
ธ ์คํฌ๋ฆฝํธ๊ฐ ๋์์ "yarn ์ค์น"๋ฅผ ํธ๋ฆฌ๊ฑฐํ์ผ๋ฉฐ ๋น๋ ํ๋ก์ธ์ค ์ค ํ๋๊ฐ ์ถ๊ฐ๋ก ์ ์บ์๋ฅผ ์ ๊ฑฐํ์ต๋๋ค. "yarn ์ค์น"๋ฅผ ์์ํ๊ธฐ ์ ์ fully _ ( "yarn cache clean"์ฌ์ฉ). ์ด๊ฒ์ ๋ฌผ๋ก ๋ค๋ฅธ ์์ฌ ๊ณต์ ์์๋ ์น๋ช
์ ์ธ ๋ฌธ์ ์์ต๋๋ค.
๊ทธ๋ฐ ๋ค์ ์บ์ ์ ๋ฆฌ๋ฅผ ์ ๊ฑฐํ๊ณ yarn ๋ช
๋ น์ ๋ค์๊ณผ ๊ฐ์ด ๋ณ๊ฒฝํ์ต๋๋ค.
yarn install --verbose --prefer-offline --mutex file:/tmp/.yarn-mutex --network-concurrency 1
(_-- verbose_๋ ์ค์ ๋ก ํ์ํ์ง ์์) ์ฝ์
child-concurrency 1
.yarnrc.
์ด์ ๋ณ๋ ฌ ๋น๋๊ฐ ์์๋๋ฉด ์์ ๋ค๋ฅธ ์ ํ๋ก์ธ์ค๊ฐ ํ์ฑ ์ํ์์ ๊ฐ์งํ๊ณ ์๋ฃ ๋ ๋๊น์ง ๋๊ธฐํฉ๋๋ค. ์ด๋ฅผ ํตํด CI์ "ํด๋น ํ์ผ ์์"๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ต๋๋ค.
์ด ํ์์ผ๋ก ํจํค์ง ์ฐธ์กฐ๋ฅผ ์ฌ์ฉํ ๋๋ง๋ค ๋ก์ปฌ ์ปดํจํฐ์์์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค.
"connect-js-adapter-tls": "git+https://github.com/jeremyjs/connect-js-adapter-tls.git#v3.2.2",
์ฃผ๋ชฉํ ๋งํ ํน์ฑ : ๊ฐ์ธ ํจํค์ง, github url, git + https, ํ๊ทธ๊ฐ ์ง์ ๋ git ์ฐธ์กฐ
๋๋ฅผ ์ํด ์ฌํํ๋ ๋จ๊ณ :
yarn install
ํฉ๋๋ค. ์ ์๋ํฉ๋๋ค.package.json
๋ค์ ์ถ๊ฐํ๊ณ yarn install
๋ค์ ์คํํฉ๋๋ค. ์ด๋ฌํ ์ฐธ์กฐ๊ฐ ๋ค์ ์ถ๊ฐ ๋ ํ ์ฒซ ๋ฒ์งธ ์คํ์์ ์ฌ์ ํ ์ ์์ ์ผ๋ก ์๋ํฉ๋๋ค.yarn install
์ถ๊ฐ ์คํ ํ ์๋ํฉ๋๋ค.yarn install
์คํํ๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.yarn install
์คํํ๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํ์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ฉด 1 ๋จ๊ณ๋ก ๋์๊ฐ๋๋ค.์ค๋ฅ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
error An unexpected error occurred: "ENOENT: no such file or directory, open '/Users/jeremy/Library/Caches/Yarn/v4/npm-connect-js-adapter-tls-3.2.2-0c97726d92c21183a7fb7334344eb5047e8bc158/node_modules/connect-js-adapter-tls/.yarn-metadata.json'".
๋ชจ๋ git ํ๊ทธ ์ฐธ์กฐ๋ฅผ ์ ๊ฑฐํ๋ฉด ๋์ผํ ๋์์ด ๊ด์ฐฐ๋ฉ๋๋ค. ๊ทธ๋์ ๋๋ ๊ทธ๊ฒ์ด ๋ฌธ์ ๊ฐ ๋ ์ ์๋ค๊ณ ๋ฏฟ์ต๋๋ค.
์ฆ
"connect-js-adapter-tls": "git+https://github.com/jeremyjs/connect-js-adapter-tls.git",
npm install
์คํํ๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
npm ERR! premature close
npm ERR! A complete log of this run can be found in:
npm ERR! /Users/jeremy/.npm/_logs/2019-03-20T04_38_38_739Z-debug.log
npm-debug.log : https://gist.github.com/jeremyjs/e97381b16f46124ff7a9bd75ad79fd62
ํ์ ์กฐ์น๋ก ์ค์นํ๊ธฐ ์ ์ package.json
์คํฌ๋ฆฝํธ๋ฅผ ๋ง๋ค์ด ์บ์์์ ํด๋น ํจํค์ง๋ฅผ ์ ๋ฆฌํ๋ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ์ต๋๋ค.
"install-clean": "yarn cache clean connect-js-adapter-tls connect-js-api connect-js-codec connect-js-encode-decode connect-protobuf-messages && yarn install"
์ด ๋ฌธ์ ๊ฐ ๋ฌด์์ธ์ง ์์ง ์ ์ ์์ต๋๊น?
์ฐ๋ฆฌ์ ๊ฒฝ์ฐ CI (๋์ปค ์ปจํ
์ด๋ ๋ด๋ถ)์ ์ผ๋ถ๋ก yarn install
๋ฅผ ์คํํ๊ณ ์์ผ๋ฉฐ ๋์ผํ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. yarn cache clean
์๋ํ์ต๋๋ค
์ด ์์ ์์ ๋ฌด์์ ์๋ํด์ผํ ์ง ํ์คํ์ง ์์ผ๋ฉฐ ๋น๋๊ฐ ์ค๋จ๋ฉ๋๋ค. ๐ฌ
Dan, --network-concurrency 1๋ก ์คํ ํด ๋ณด์
จ์ต๋๊น? ๋๋ ๋น์ทํ
์๋๋ฆฌ์ค๊ฐ ๋ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค.
2019 ๋
4 ์ 2 ์ผ 22:17์ "Dan Van Brunt" [email protected]์ด ์์ฑํ์ต๋๋ค.
์ด ๋ฌธ์ ๊ฐ ๋ฌด์์ธ์ง ์์ง ์ ์ ์์ต๋๊น?
์ฐ๋ฆฌ์ ๊ฒฝ์ฐ CI์ ์ผ๋ถ๋ก yarn install์ ์คํํ๊ณ ์์ต๋๋ค (๋์ปค ๋ด๋ถ
์ปจํ ์ด๋)์ ๋์ผํ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. ์ฐ๋ฆฌ๋ ์์ฌ ์บ์ ์ฒญ์๋ฅผ ์๋ํ์ต๋๋ค์ด ์์ ์์ ๋ฌด์์ ์๋ํด์ผํ ์ง ํ์คํ์ง ์์ผ๋ฉฐ ๋น๋๊ฐ ์ค๋จ๋ฉ๋๋ค. ๐ฌ
โ
์ด ์ค๋ ๋๋ฅผ ๊ตฌ๋ ํ๊ธฐ ๋๋ฌธ์์ด ๋ฉ์์ง๊ฐ ์ ์ก๋์์ต๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธํ์ธ์.
https://github.com/yarnpkg/yarn/issues/2629#issuecomment-479283590 ๋๋ ์์๊ฑฐ
์ค
https://github.com/notifications/unsubscribe-auth/AFU4O1iKA-HBd62Hema1ETmuUlMro_GLks5vdAEOgaJpZM4L3JbX
.
์ฐ๋ฆฌ CI ๋ฌธ์ ๋ ํด๊ฒฐํด ์ค @tevaum . ๋ํ ๋น๋ ์๋๊ฐ ํฌ๊ฒ ์ ํ๋์์ต๋๋ค. ๋๋ฌด ๋์ฐํ์ง๋ง ์ ์ผํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋๋ค.
๋ค. ๋์ ๋จ์ ์
๋๋ค. 2 ๋๋ 4์ ๊ฐ์ ์์ ์ซ์๋ก ์๋ ํ ์ ์์ต๋๋ค.
์กฐ๊ธ ๋ ๋น ๋ฅผ ๊ฒ์ด์ง๋ง ์ ์๊ฒ ํจ๊ณผ๊ฐ ์์๋ ์ ์ผํ ๊ฐ์ 1 : /
๋ฐ๋ผ์ ์ค์ ์์ ์ด ํ๋ณตํด์ง ๋๊น์ง ๊ธฐ๋ค๋ ค์ผํฉ๋๋ค.)
2019 ๋
4 ์ 4 ์ผ 00:26์ "kunokdev" [email protected]์ด ์์ฑํ์ต๋๋ค.
@tevaum https://github.com/tevaum ์ CI ๋ฌธ์ ๋ ํด๊ฒฐํ์ต๋๋ค.
๋ํ ๋น๋ ์๋๊ฐ ํฌ๊ฒ ์ ํ๋์์ต๋๋ค. ๋๋ฌด ๋์ฐํฉ๋๋ค.
โ
๋น์ ์ด ์ธ๊ธ ๋์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๊ณ ์์ต๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธํ์ธ์.
https://github.com/yarnpkg/yarn/issues/2629#issuecomment-479735791 ๋๋ ์์๊ฑฐ
์ค
https://github.com/notifications/unsubscribe-auth/AFU4O1a9lHn41K0eEQT9zZZzOoATiT61ks5vdXD8gaJpZM4L3JbX
.
์ด ๋ฌธ์ ๊ฐ ํด๊ฒฐ ๋ ๊น์? ์ด๋ก ์ธํด ๋ ๊ฐ ์ด์์ ํ๋ก์ ํธ์์ ์์ฌ๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ๋์์ต๋๋ค.
https://yarnpkg.com/en/docs/cli/#toc -concurrency-and-mutex์ ๋ฌธ์ํ ๋ mutex ์ต์ ์ ์ฌ์ฉํ์ญ์์ค.
Yarn์ ์บ์ ์ฌ์ฉ์ ๋ค์ค ํ๋ก์ธ์ค ๋ฐฉ์์ผ๋ก ์ฌ์ฉํ๊ธฐ์ ์์ ํ์ง ์์ผ๋ฉฐ ์ด๋ฌํ ์ค๋ฅ์ ์์ธ์ ๋๋ค.
๋๋ https://yarnpkg.com/en/docs/cli/cache#change -the-cache-path-for-yarn-์ ๋ฌธ์ํ ๋ --cache-folder ์ต์ ์ ์ฌ์ฉํ์ฌ ํ๋ก์ธ์ค ๋ณ ์บ์ ํด๋๋ฅผ ์ค์ ํ ์ ์์ต๋๋ค.
๋ฎคํ ์ค ์ต์ ์ฌ์ฉ์ ๋จ์ ์ ์ ์ฒด ์์คํ ์ ํ๋์ ์ ์ธ์คํด์ค ๋ง ์๋ค๋ ๊ฒ์ ๋๋ค (๋ค๋ฅธ ์ธ์คํด์ค๋ ํ์ฑ ํ๋ก์ธ์ค๊ฐ ์ข ๋ฃ ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆผ). ์ฆ, CI ์์ ์ ์ฒด์์ ๋์์ฑ์ด ์ ํ ์์์ ์๋ฏธํฉ๋๋ค.
ํ๋ก์ธ์ค ๋น ์บ์ ํด๋์ ๋จ์ ์ I / O๊ฐ ์ฆ๊ฐํ๊ณ ์บ์ ์ฌ์ฌ์ฉ์ด ์ ์ด ์ ์ฌ์ ์ธ ์์ค์ด ์๋ค๋ ๊ฒ์ ๋๋ค.
์ด์์ ์ธ ์๋ฃจ์ ์ Node์ ํ์ผ ์ ๊ธ ๊ธฐ๋ฅ์ด ์๊ธฐ ๋๋ฌธ์ ์ฝ์ง ์์ ํ๋ก์ธ์ค ์์ ์บ์ ๊ตฌํ์ ๊ตฌํํ๋ ๊ฒ์ ๋๋ค (์ ์ผํ ์ ๋ขฐํ ์์๋ ์ต์ ์ ๋ฎคํ ์ค ๋๋ ํ ๋ฆฌ๋ฅผ ๋ง๋๋ ๊ฒ ๊ฐ์ต๋๋ค). ๋ ๋ฒ์งธ๋ก ์ข์ ๋ฐฉ๋ฒ์ ๋์ผํ arm์์ ๋์์ฑ๊ณผ ์บ์ ์ฌ์ฌ์ฉ์ ํ์ฉํ๋ per-parallel-arm ์บ์ ํด๋๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋๋ค.
๋๋ ๊ทธ๊ฒ์ด ๋ฎคํ
์ค ๋ฌผ๊ฑด์ด๋ผ๊ณ ์๊ฐํ์ง ์์ต๋๋ค. ๋์ ๋ค๋ฅธ ์ฌ๋๋ค์ ํ ๋ฒ์ ๋จ์ผ ์์ฌ๋ฅผ ์คํํฉ๋๋ค. ์ ๊ฒฝ์ฐ์๋ Dockerfile์์ RUN yarn install
์
๋๋ค. ์ด๋ ํด๋น ํ๊ฒฝ์์ ๋ค๋ฅธ ํ๋ก์ธ์ค๊ฐ ๋์์ ์คํ๋์ง ์๋๋กํฉ๋๋ค.
์ต์ ์ฌ์์ฐ ์์ (์ ์ด๋ ๋ด OSX์ ๊ฒฝ์ฐ)๋ฅผ ํ์ธํ์ญ์์ค.
728 22:49:55 iMac ~/tmp/ynse$ ls
Dockerfile package.json
729 22:49:58 iMac ~/tmp/ynse$ cat Dockerfile
FROM node
ADD . /app
WORKDIR /app
RUN yarn
730 22:50:00 iMac ~/tmp/ynse$ cat package.json
{
"dependencies": {
"react-navigation-core": "https://github.com/react-navigation/react-navigation-core",
"react-navigation-hooks": "https://github.com/react-navigation/react-navigation-hooks"
}
}
731 22:50:03 iMac ~/tmp/ynse$ docker build -t yt .
Sending build context to Docker daemon 15.87kB
Step 1/4 : FROM node
---> 39337023f8d4
Step 2/4 : ADD . /app
---> aa86b2d7f191
Step 3/4 : WORKDIR /app
---> Running in 83baa8603935
Removing intermediate container 83baa8603935
---> 80741f170292
Step 4/4 : RUN yarn
---> Running in 0718118bdcd6
yarn install v1.3.2
warning package.json: No license field
info No lockfile found.
warning No license field
[1/4] Resolving packages...
[2/4] Fetching packages...
[1/4] Resolving packages...
[2/4] Fetching packages...
[1/4] Resolving packages...
[2/4] Fetching packages...
info If you think this is a bug, please open a bug report with the information provided in "/app/yarn-error.log".
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
error An unexpected error occurred: "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz: EEXIST: file already exists, mkdir '/usr/local/share/.cache/yarn/v1/npm-lodash-4.17.11-b39ea6229ef607ecd89e2c8df12536891cac9b8d'".
^C
732 22:50:23 iMac ~/tmp/ynse$
@nopik -Yarn 1.3.2๋ ๋งค์ฐ ์ค๋๋์์ผ๋ฉฐ ํด๋น ๋ฒ์ ์ดํ์ ๋ง์ ์์ ์ฌํญ์ด์์์ต๋๋ค. ์ต์ Docker ๋ด๋ถ ์ค ํ๋๋ฅผ ์ฌ์ฉํด ๋ณด์ จ์ต๋๊น?
์ค์ ๋ก ๊ทธ ๋ ธ๋ ์ด๋ฏธ์ง๋ ๊ฝค ์ค๋๋์์ต๋๋ค. ๋ค์์ dockerhub node : latest ์์ ๋ช ๋ถ ์ ์ ๋ค์ด๋ก๋ ํ ์๋ก์ด ๊ฒ์ ๋๋ค.
Sending build context to Docker daemon 15.87kB
Step 1/4 : FROM node
---> a9c1445cbd52
Step 2/4 : ADD . /app
---> Using cache
---> 26ed37136c09
Step 3/4 : WORKDIR /app
---> Using cache
---> b2339e7d25af
Step 4/4 : RUN yarn
---> Running in cdbdfd9c373c
yarn install v1.15.2
warning package.json: No license field
info No lockfile found.
warning No license field
[1/4] Resolving packages...
[2/4] Fetching packages...
[1/4] Resolving packages...
[2/4] Fetching packages...
[1/4] Resolving packages...
[2/4] Fetching packages...
error An unexpected error occurred: "ENOTEMPTY: directory not empty, rmdir '/usr/local/share/.cache/yarn/v4/npm-lodash-4.17.11-b39ea6229ef607ecd89e2c8df12536891cac9b8d/node_modules/lodash'".
info If you think this is a bug, please open a bug report with the information provided in "/app/yarn-error.log".
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
@BYK ์ด ๋์ปค๋ฅผ ์ง์ ๋ง๋ค์ด ๋ณด์ จ์ต๋๊น?
๋ด ์ปดํจํฐ (์ง๊ธ ๋ชจ๋ฐ์ผ)์ ๋์ฐฉํ๋ฉด ๋ฉฐ์น ํ์ ์๋ํฉ๋๋ค. ๋งค์ฐ ์ด์ํด ๋ณด์ด์ง๋ง ๋๋ ํ ๋ฆฌ๋ ์ผ๊ด์ฑ์ด ์์ต๋๋ค. ์ฌํ ์ฌ๋ก์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
@nopik- ๋ก๊ทธ๋ฅผ ์์ธํ
@BYK ๊ทธ ํจํค์ง ์ค ํ๋์ "scripts": { "build": "yarn babel --out-dir dist && del-cli 'dist/**/__tests__' && yarn tsc --emitDeclarationOnly", "prepare": "yarn build" }
๊ฒ์ ์ ์ ์์ต๋๋ค. ๋ค๋ฅธ ํ๋๋ ๋ค๋ฅธ ์คํฌ๋ฆฝํธ๋ฅผ ๊ฐ์ง๊ณ ์์ง๋ง ์์ง ์ค๋น์ค์ธ yarn์ ์คํํ๊ณ ์์ต๋๋ค. ์ค์น ์ค์ yarn์ ์ํด ์คํ๋ฉ๋๊น?
@Nopik- ๋ค๋ฅธ ์ค์น๊ฐ ์๋ ๋จ์ํ ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ๊ธฐ ๋๋ฌธ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ง ๋ง์ญ์์ค. ๋ํ ์ด๋ฌํ ์คํฌ๋ฆฝํธ๋ I / O ๋จ๊ณ ํ์ ์คํ๋ฉ๋๋ค. ์ฌ๋ฌ yarn install
์ธ์คํด์ค๋ฅผ ํธ๋ฆฌ๊ฑฐํ๋ ๋ค๋ฅธ ํญ๋ชฉ์ด ์์ด์ผํฉ๋๋ค.
๋๋ ๊ทธ๊ฒ์ด ์๋ง๋ ๋์์ ์คํ๋๋ ์ฌ๋ฌ ์ค์ ์ธ์คํด์ค๋ผ๋ ๋ฐ ๋์ํฉ๋๋ค. ๋ฌธ์ ๋ ์ด๊ฒ์ด yarn
์ ๋จ์ผ CLI ํธ์ถ์์ ๋ฐ์ํ๋ค๋ ๊ฒ์
๋๋ค. ์ฌํํ๊ธฐ ์ํด๋ ์ปค๊ฐ ํ์ํ์ง ์์ต๋๋ค.
์ ์ ์ด๋ก ์ ์ ์๊ณ ์์ง ์์ง๋ง ์ค๋น ๋จ๊ณ์ ๊ด๋ จ์ด ์๊ณ ํด๋น ์์ด git ํจํค์ง๋ฅผ "๋น๋"ํ๊ธฐ ์ํด ์ถ๊ฐ ์ธ์คํด์ค๋ฅผ ์์ํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ํนํ ๋น๋ํด์ผํ๋ ๊ณตํต ํจํค์ง์ ๊ฐ๊ฐ ์์กดํ๋ ๋ ๊ฐ์ง ์ข ์์ฑ์ด์์ ๊ฒ์ ๋๋ค. Yarn์ ๋๋ํ๊ณ ๊ฐ ๊ฐ๋ณ ํจํค์ง๋ฅผ ๋ณ๋ ฌ๋ก ๋น๋ํ๋ ค๊ณ ํ์ง๋ง ๋์ผํ ์บ์ ์์น์ ๋ ๊ฐ์ ํจํค์ง๋ฅผ ๋น๋ํ๋ ค๊ณ ํ๋ฉด ์คํจํฉ๋๋ค.
์ฐ๋ฆฌ์ ๊ฒฝ์ฐ์๋ ์ฌ๋ฌ ๊ฐ์ ์ค ์ธ์คํด์ค๊ฐ ์์ต๋๋ค.
์ฐ๋ฆฌ ์์คํ
์ ์์ฒด ๋์ปค ์ด๋ฏธ์ง์์ ์คํ๋ฉ๋๋ค. ๋จ์ผ _ ์์ฌ ์ค์น _๊ฐ ์์ต๋๋ค. ๊ฐ์๊ธฐ ์ค์๋ํ๊ธฐ ์์ํ๊ณ ์ด์ ๋คํธ์ํฌ ๋์์ฑ์ 1๋ก ์ค์ ํ์ง ์์ผ๋ฉด ์์
ํ ์ ์์ต๋๋ค.
์์ฌ ์์ฒด๊ฐ ๋ฐค์ ๋ฐ๋์ง ์๋ ํ
--mutex file
๋๋ --mutex network
๋ก์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ค๊ณ ํ๋ฉด ํ์ฐ์ ์ผ๋ก (์๋ง๋)์ด ๋ฒ๊ทธ๊ฐ ๋ฐ์ํฉ๋๋ค https://github.com/yarnpkg/yarn/issues/6650 (ํ์ฌ 6 ๊ฐ์ ๋์ ์คํ / ๋ฏธํด๊ฒฐ) ๐ข
์ฆ, yarn install
์คํํ๋ฉด ์ฑ๊ณตํ๋๋ผ๋ ๋ค๋ฅธ yarn ๋ช
๋ น์ ์คํํ ์ ์์ต๋๋ค.
Dan, --network-concurrency 1๋ก ์คํ ํด ๋ณด์ จ์ต๋๊น? ๋น์ทํ ์๋๋ฆฌ์ค๊ฐ ์์ผ๋ฉฐ ๋ด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ต๋๋ค.
@tevaum- ๊ทธ๊ฒ ๋ฐ๋ก ๋ฌธ์ ์์ต๋๋ค. ๊ฐ์ฌ!
๋๋ ํ๋ ์ด์์ ์ธ์คํด์ค๋ฅผ ์คํํ์ง ์์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ง๋ง ์ค์ ๋ก๋ ์คํฌ๋ฆฝํธ๊ฐ ์์ต๋๋ค. ๐คฆโโ๏ธ
@tevaum ๋ ๋๋ฅผ ์ํด ํด๊ฒฐ๋์์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
--mutex ํ์ผ ๋๋ --mutex ๋คํธ์ํฌ๋ก์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ค๊ณ ํ๋ฉด ๋ถ๊ฐํผํ๊ฒ (์๋ง๋)์ด ๋ฒ๊ทธ # 6650 (ํ์ฌ 6 ๊ฐ์ ๋์ ์ด๋ฆผ / ํด๊ฒฐ๋์ง ์์)์ด ๋ฐ์ํฉ๋๋ค.
@sarink โ ๋ฎคํ ์ค ์ต์ ๋ฒ๊ทธ๋ ๋ง๋ฌ์ต๋๋ค. ์ธ๊ธ ํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.
yarn
๋ ๋ชจ๋ ๊ฒ์ด ์ ์์ด๋ผ๊ณ ๋งํฉ๋๋ค.
PS C:\Users\chtacklind\Desktop\git\Project> yarn --verbose
yarn install v1.10.1
verbose 0.282 Checking for configuration file "C:\\Users\\chtacklind\\Desktop\\git\\Project\\.npmrc".
verbose 0.284 Found configuration file "C:\\Users\\chtacklind\\Desktop\\git\\Project\\.npmrc".
verbose 0.285 Checking for configuration file "C:\\Users\\chtacklind\\.npmrc".
verbose 0.286 Checking for configuration file "C:\\Program Files\\nodejs\\etc\\npmrc".
verbose 0.288 Checking for configuration file "C:\\Users\\chtacklind\\Desktop\\git\\Project\\.npmrc".
verbose 0.289 Found configuration file "C:\\Users\\chtacklind\\Desktop\\git\\Project\\.npmrc".
verbose 0.29 Checking for configuration file "C:\\Users\\chtacklind\\Desktop\\git\\.npmrc".
verbose 0.291 Checking for configuration file "C:\\Users\\chtacklind\\Desktop\\.npmrc".
verbose 0.295 Checking for configuration file "C:\\Users\\chtacklind\\.npmrc".
verbose 0.297 Checking for configuration file "C:\\Users\\.npmrc".
verbose 0.3 Checking for configuration file "C:\\Users\\chtacklind\\Desktop\\git\\Project\\.yarnrc".
verbose 0.301 Found configuration file "C:\\Users\\chtacklind\\Desktop\\git\\Project\\.yarnrc".
verbose 0.302 Checking for configuration file "C:\\Users\\chtacklind\\.yarnrc".
verbose 0.309 Found configuration file "C:\\Users\\chtacklind\\.yarnrc".
verbose 0.312 Checking for configuration file "C:\\Program Files\\nodejs\\etc\\yarnrc".
verbose 0.317 Checking for configuration file "C:\\Users\\chtacklind\\Desktop\\git\\Project\\.yarnrc".
verbose 0.318 Found configuration file "C:\\Users\\chtacklind\\Desktop\\git\\Project\\.yarnrc".
verbose 0.319 Checking for configuration file "C:\\Users\\chtacklind\\Desktop\\git\\.yarnrc".
verbose 0.326 Checking for configuration file "C:\\Users\\chtacklind\\Desktop\\.yarnrc".
verbose 0.327 Checking for configuration file "C:\\Users\\chtacklind\\.yarnrc".
verbose 0.333 Found configuration file "C:\\Users\\chtacklind\\.yarnrc".
verbose 0.336 Checking for configuration file "C:\\Users\\.yarnrc".
verbose 0.346 current time: 2019-05-12T11:56:12.800Z
[1/4] Resolving packages...
success Already up-to-date.
Done in 0.33s.
๊ทธ๋ฌ๋ yarn --check
์คํํ๋ฉด ๋น๋๋ฅผ ์๋ํ์ง๋ง ํญ์ ์คํจํฉ๋๋ค.
๋๋๋ก ๋์ ์๋ชป๋ ์ค๋ฅ ๋ฉ์์ง๊ฐ ํ์๋ฉ๋๋ค.
PS C:\Users\chtacklind\Desktop\git\Project> yarn --check-files --network-concurrency 1 --mutex file:C:/.yarn-mutex --verbose
yarn install v1.10.1
verbose 0.286 Checking for configuration file "C:\\Users\\chtacklind\\Desktop\\git\\Project\\.npmrc".
verbose 0.288 Found configuration file "C:\\Users\\chtacklind\\Desktop\\git\\Project\\.npmrc".
verbose 0.289 Checking for configuration file "C:\\Users\\chtacklind\\.npmrc".
verbose 0.29 Checking for configuration file "C:\\Program Files\\nodejs\\etc\\npmrc".
verbose 0.291 Checking for configuration file "C:\\Users\\chtacklind\\Desktop\\git\\Project\\.npmrc".
verbose 0.292 Found configuration file "C:\\Users\\chtacklind\\Desktop\\git\\Project\\.npmrc".
verbose 0.293 Checking for configuration file "C:\\Users\\chtacklind\\Desktop\\git\\.npmrc".
verbose 0.294 Checking for configuration file "C:\\Users\\chtacklind\\Desktop\\.npmrc".
verbose 0.295 Checking for configuration file "C:\\Users\\chtacklind\\.npmrc".
verbose 0.296 Checking for configuration file "C:\\Users\\.npmrc".
verbose 0.302 Checking for configuration file "C:\\Users\\chtacklind\\Desktop\\git\\Project\\.yarnrc".
verbose 0.304 Found configuration file "C:\\Users\\chtacklind\\Desktop\\git\\Project\\.yarnrc".
verbose 0.305 Checking for configuration file "C:\\Users\\chtacklind\\.yarnrc".
verbose 0.306 Found configuration file "C:\\Users\\chtacklind\\.yarnrc".
verbose 0.307 Checking for configuration file "C:\\Program Files\\nodejs\\etc\\yarnrc".
verbose 0.308 Checking for configuration file "C:\\Users\\chtacklind\\Desktop\\git\\Project\\.yarnrc".
verbose 0.311 Found configuration file "C:\\Users\\chtacklind\\Desktop\\git\\Project\\.yarnrc".
verbose 0.313 Checking for configuration file "C:\\Users\\chtacklind\\Desktop\\git\\.yarnrc".
verbose 0.314 Checking for configuration file "C:\\Users\\chtacklind\\Desktop\\.yarnrc".
verbose 0.315 Checking for configuration file "C:\\Users\\chtacklind\\.yarnrc".
verbose 0.316 Found configuration file "C:\\Users\\chtacklind\\.yarnrc".
verbose 0.317 Checking for configuration file "C:\\Users\\.yarnrc".
verbose 0.32 current time: 2019-05-12T11:56:20.033Z
[1/4] Resolving packages...
[2/4] Fetching packages...
verbose 2.344 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\Yarn\\Cache\\v2\\.tmp\\ef8122f161347726dd1763e1dca6eeef.d34344cbdf2ff518a03c08fc5f46827c9d66e543.prepare\\.npmrc".
verbose 2.344 Checking for configuration file "C:\\Users\\chtacklind\\.npmrc".
verbose 2.345 Checking for configuration file "C:\\Program Files\\nodejs\\etc\\npmrc".
verbose 2.345 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\Yarn\\Cache\\v2\\.tmp\\ef8122f161347726dd1763e1dca6eeef.d34344cbdf2ff518a03c08fc5f46827c9d66e543.prepare\\.npmrc".
verbose 2.346 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\Yarn\\Cache\\v2\\.tmp\\.npmrc".
verbose 2.346 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\Yarn\\Cache\\v2\\.npmrc".
verbose 2.346 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\Yarn\\Cache\\.npmrc".
verbose 2.346 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\Yarn\\.npmrc".
verbose 2.347 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\.npmrc".
verbose 2.347 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\.npmrc".
verbose 2.347 Checking for configuration file "C:\\Users\\chtacklind\\.npmrc".
verbose 2.348 Checking for configuration file "C:\\Users\\.npmrc".
verbose 2.348 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\Yarn\\Cache\\v2\\.tmp\\ef8122f161347726dd1763e1dca6eeef.d34344cbdf2ff518a03c08fc5f46827c9d66e543.prepare\\.yarnrc".
verbose 2.349 Checking for configuration file "C:\\Users\\chtacklind\\.yarnrc".
verbose 2.35 Found configuration file "C:\\Users\\chtacklind\\.yarnrc".
verbose 2.351 Checking for configuration file "C:\\Program Files\\nodejs\\etc\\yarnrc".
verbose 2.352 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\Yarn\\Cache\\v2\\.tmp\\ef8122f161347726dd1763e1dca6eeef.d34344cbdf2ff518a03c08fc5f46827c9d66e543.prepare\\.yarnrc".
verbose 2.353 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\Yarn\\Cache\\v2\\.tmp\\.yarnrc".
verbose 2.358 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\Yarn\\Cache\\v2\\.yarnrc".
verbose 2.359 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\Yarn\\Cache\\.yarnrc".
verbose 2.36 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\Yarn\\.yarnrc".
verbose 2.361 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\.yarnrc".
verbose 2.362 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\.yarnrc".
verbose 2.363 Checking for configuration file "C:\\Users\\chtacklind\\.yarnrc".
verbose 2.364 Found configuration file "C:\\Users\\chtacklind\\.yarnrc".
verbose 2.366 Checking for configuration file "C:\\Users\\.yarnrc".
[1/4] Resolving packages...
[2/4] Fetching packages...
verbose 2.541 Performing "GET" request to "https://registry.yarnpkg.com/typescript/-/typescript-3.3.3333.tgz".
verbose 3.263 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\Yarn\\Cache\\v2\\.tmp\\6621674c4e43b664dde14df71eaf0cc8.09d44d8abc94f728f1c5ea93c22fe9b4f87d9076.prepare\\.npmrc".
verbose 3.264 Checking for configuration file "C:\\Users\\chtacklind\\.npmrc".
verbose 3.265 Checking for configuration file "C:\\Program Files\\nodejs\\etc\\npmrc".
verbose 3.266 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\Yarn\\Cache\\v2\\.tmp\\6621674c4e43b664dde14df71eaf0cc8.09d44d8abc94f728f1c5ea93c22fe9b4f87d9076.prepare\\.npmrc".
verbose 3.268 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\Yarn\\Cache\\v2\\.tmp\\.npmrc".
verbose 3.27 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\Yarn\\Cache\\v2\\.npmrc".
verbose 3.271 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\Yarn\\Cache\\.npmrc".
verbose 3.273 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\Yarn\\.npmrc".
verbose 3.278 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\.npmrc".
verbose 3.279 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\.npmrc".
verbose 3.28 Checking for configuration file "C:\\Users\\chtacklind\\.npmrc".
verbose 3.281 Checking for configuration file "C:\\Users\\.npmrc".
verbose 3.283 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\Yarn\\Cache\\v2\\.tmp\\6621674c4e43b664dde14df71eaf0cc8.09d44d8abc94f728f1c5ea93c22fe9b4f87d9076.prepare\\.yarnrc".
verbose 3.285 Checking for configuration file "C:\\Users\\chtacklind\\.yarnrc".
verbose 5.007 Error: https://registry.yarnpkg.com/typescript/-/typescript-3.3.3333.tgz: Extracting tar content of undefined failed, the file appears to be corrupt: "ENOENT: no such file or directory, stat 'C:\\Users\\chtacklind\\AppData\\Local\\Yarn\\Cache\\v2\\npm-typescript-3.3.3333-171b2c5af66c59e9431199117a3bcadc66fdcfd6\\lib\\tsserver.js'"nd\\AppData\\Local\\Yarn\\Cache\\v2\\.tmp\\6621674c4e43b664dde14df71eaf0cc
at MessageError.ExtendableBuiltin (C:\Program Files (x86)\Yarn\lib\cli.js:243:66)
at new MessageError (C:\Program Files (x86)\Yarn\lib\cli.js:272:123)pData\\Local\\Yarn\\Cache\\v2\\.tmp\\.yarnrc".
at Extract.<anonymous> (C:\Program Files (x86)\Yarn\lib\cli.js:56849:14)a\\Local\\Yarn\\Cache\\v2\\.yarnrc".
at Extract.emit (events.js:194:15)on file "C:\\Users\\chtacklind\\AppData\\Local\\Yarn\\Cache\\.yarnrc".
at Extract.module.exports.Extract.destroy (C:\Program Files (x86)\Yarn\lib\cli.js:131115:17)nrc".
at onunlock (C:\Program Files (x86)\Yarn\lib\cli.js:130992:26)nd\\AppData\\Local\\.yarnrc".
at C:\Program Files (x86)\Yarn\lib\cli.js:43373:25rs\\chtacklind\\AppData\\.yarnrc".
at C:\Program Files (x86)\Yarn\lib\cli.js:43339:23rs\\chtacklind\\.yarnrc".
at C:\Program Files (x86)\Yarn\lib\cli.js:56799:13acklind\\.yarnrc".
at FSReqWrap.oncomplete (fs.js:153:21)ile "C:\\Users\\.yarnrc".
error https://registry.yarnpkg.com/typescript/-/typescript-3.3.3333.tgz: Extracting tar content of undefined failed, the file appears to be corrupt: "ENOENT: no such file or directory, stat 'C:\\Users\\chtacklind\\AppData\\Local\\Yarn\\Cache\\v2\\npm-typescript-3.3.3333-171b2c5af66c59e9431199117a3bcadc66fdcfd6\\lib\\tsserver.js'"
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
PS C:\Users\chtacklind\Desktop\git\Project>
๋๋๋ก ๋ค๋ฅธ ์ค๋ฅ๊ฐ ์์ต๋๋ค.
...
[2/4] Fetching packages...
verbose 2.635 Performing "GET" request to "https://registry.yarnpkg.com/typescript/-/typescript-3.3.3333.tgz".
verbose 3.465 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\Yarn\\Cache\\v2\\.tmp\\6621674c4e43b664dde14df71eaf0cc8.09d44d8abc94f728f1c5ea93c22fe9b4f87d9076.prepare\\.npmrc".
verbose 3.466 Checking for configuration file "C:\\Users\\chtacklind\\.npmrc".
verbose 3.467 Checking for configuration file "C:\\Program Files\\nodejs\\etc\\npmrc".
verbose 3.468 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\Yarn\\Cache\\v2\\.tmp\\6621674c4e43b664dde14df71eaf0cc8.09d44d8abc94f728f1c5ea93c22fe9b4f87d9076.prepare\\.npmrc".
verbose 3.469 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\Yarn\\Cache\\v2\\.tmp\\.npmrc".
verbose 3.47 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\Yarn\\Cache\\v2\\.npmrc".
verbose 3.471 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\Yarn\\Cache\\.npmrc".
verbose 3.473 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\Yarn\\.npmrc".
verbose 3.474 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\.npmrc".
verbose 3.48 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\.npmrc".
verbose 3.481 Checking for configuration file "C:\\Users\\chtacklind\\.npmrc".
verbose 3.482 Checking for configuration file "C:\\Users\\.npmrc".
verbose 3.483 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\Yarn\\Cache\\v2\\.tmp\\6621674c4e43b664dde14df71eaf0cc8.09d44d8abc94f728f1c5ea93c22fe9b4f87d9076.prepare\\.yarnrc".
verbose 3.485 Checking for configuration file "C:\\Users\\chtacklind\\.yarnrc".
verbose 3.486 Found configuration file "C:\\Users\\chtacklind\\.yarnrc".
verbose 3.49 Checking for configuration file "C:\\Program Files\\nodejs\\etc\\yarnrc".
verbose 3.492 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\Yarn\\Cache\\v2\\.tmp\\6621674c4e43b664dde14df71eaf0cc8.09d44d8abc94f728f1c5ea93c22fe9b4f87d9076.prepare\\.yarnrc".
verbose 3.493 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\Yarn\\Cache\\v2\\.tmp\\.yarnrc".
verbose 3.494 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\Yarn\\Cache\\v2\\.yarnrc".
verbose 3.495 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\Yarn\\Cache\\.yarnrc".
verbose 3.496 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\Yarn\\.yarnrc".
verbose 3.497 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\.yarnrc".
verbose 3.501 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\.yarnrc".
verbose 3.503 Checking for configuration file "C:\\Users\\chtacklind\\.yarnrc".
verbose 3.504 Found configuration file "C:\\Users\\chtacklind\\.yarnrc".
verbose 3.505 Checking for configuration file "C:\\Users\\.yarnrc".
[1/4] Resolving packages...
[2/4] Fetching packages...
verbose 4.608 Error: EPERM: operation not permitted, unlink 'C:\Users\chtacklind\AppData\Local\Yarn\Cache\v2\npm-typescript-3.3.3333-171b2c5af66c59e9431199117a3bcadc66fdcfd6\.yarn-tarball.tgz'
error An unexpected error occurred: "EPERM: operation not permitted, unlink 'C:\\Users\\chtacklind\\AppData\\Local\\Yarn\\Cache\\v2\\npm-typescript-3.3.3333-171b2c5af66c59e9431199117a3bcadc66fdcfd6\\.yarn-tarball.tgz'".
info If you think this is a bug, please open a bug report with the information provided in "C:\\Users\\chtacklind\\Desktop\\git\\Project\\yarn-error.log".
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
PS C:\Users\chtacklind\Desktop\git\Project>
--mutex
์ง์ ํ์ง๋ง ๋ ๊ฐ์ ์ค ํ๋ก์ธ์ค๊ฐ ์คํ๋๊ณ ์์ต๋๋ค.
์ฐธ๊ณ ๋ก์ด ํจํค์ง์๋ ์ํํด์ผํ๋ tsc
prepare
๋จ๊ณ๊ฐ์๋ git ์ข
์์ฑ์ด ์์ต๋๋ค. ์ด ํจํค์ง์๋ ๋์ผํ ํ๋ก์ธ์ค๊ฐ ํ์ํ git ์ข
์์ฑ๋ ์์ต๋๋ค. ์์ด ๊ฐ์ ํจํค์ง๋ฅผ ๊ฐ์ ์ฅ์์ ํ๋ ค๊ณ ํ๋๋ฐ ์ฐ๋ฆฌ๋ ๊ฒฝ์ ์ํ์ ์๋ค๋ ๊ฒ์ด ๋ถ๋ช
ํฉ๋๋ค.
์ ์ ์ฌ๋ ๋งํ์ง ์์๋ ์ฌ๋ฌ ์ธ์คํด์ค๋ฅผ ์คํํฉ๋๊น?
์
๋ฐ์ดํธ๋ก yarn install --network-concurrency 1 --mutex network
์ฌ์ฉ์ ํ๋ ๋๋ ๋ค๋ฅธ ์ต์
์ ์ฌ์ฉํ๋ ๊ฒ์ด ์๊ฐ์ ์ผ๋ถ๋ง ์ฑ๊ณตํ๋ ๊ฒฝํฅ์ด์๋ ๋งค๋ฒ ์๋ํ๋ ๊ฒ์ฒ๋ผ ๋ณด์
๋๋ค.
๊ทธ๋ ๋ค๋ฉด์ด ๋ฌธ์ ์ ๋ํ ํด๊ฒฐ์ฑ
์ ๋ฌด์์
๋๊น?
Ubuntu Linux 18.04์์ yarn 1.16์ ์ฌ์ฉํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ฌ์ ํ์ด ์ค๋ฅ ๋ฉ์์ง๊ฐ ๋ํ๋ฉ๋๋ค.
error ์๊ธฐ์น ์์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค : "ENOENT : no such file or directory, lstat '/ home / user / workspace / project / packages / components / node_modules / source-map-support'".
๋ด ๋ช ๋ น์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
yarn install --check-files --frozen-lockfile --network-concurrency 1
๊ทธ๋ฆฌ๊ณ ๋ ๋ฒ์ ํ ๋ฒ์ด ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
์ถ์ : ์ ๋ monorepo์์ ์์
ํ๋ฏ๋ก yarn ์์
๊ณต๊ฐ์ ํ์ฑํํ์ต๋๋ค.
PPS :
๋๋ ๋ ๋ฒ ํ์ธํ๋ค
--mutex ํ์ผ ๋๋ --mutex ๋คํธ์ํฌ๋ฅผ ์ถ๊ฐํด๋ ๋์์ด๋์ง ์์ต๋๋ค.
์ํ์ด ์คํฌ๋ฆฝํธ์ ๋ค์ด๊ฐ๋ ๊ฒ์ ํ์ธํ ์์๋ ์ ์ผํ ์๋ฃจ์
yarn install --check-files --frozen-lockfile;
do
echo "Surprise, surprise. Let's try again..."
done
:(
Fwiw, yarn
๋ฅผ npm
๋ก ์ฐพ๊ธฐ / ๋ฐ๊พธ๊ธฐ ๋ง ์ํํ๊ณ synp ๋ฅผ ์ฌ์ฉํ์ฌ yarn.lock
๋ฅผ package-lock.json
๋ก ๋ณํํ์ฌ npm ์ผ๋ก ์ ํ ํ ์ npm install
ํฉ๋๋ค. ์ด๊ฒ์ด ๊ณ ํต์ค๋ฌ์ด ๊ณผ์ ์ด๋ผ๊ณ ์๊ฐํ์ง๋ง npm์ ๋ง์ด ๋ฐ์ ํ๊ณ 30 ๋ถ ๋ฐ์ ๊ฑธ๋ฆฌ์ง ์์๊ณ ์ด์ ๋ ์ด๋์์๋ ์๋ํฉ๋๋ค.
์ฌ๊ธฐ์ ๋ฌธ์ ๋ ๋ฌด์์ด ์๋ชป๋๊ณ ์๋์ง์ ๋ํ ์ง์ ์ผ๋ก ๊ฐ๋จํ ์๊ฐ ์๋ค๋ ๊ฒ์
๋๋ค. ๋๋ ๋ฌธ์ ๋ฅผ ์์ ์ ์ผ๋ก ์ฌํํ๋ ์ฌ์ํ package.json
๋ฅผ ๊ฒ์ํ์ง๋ง ํฌํจ ๋ ํจํค์ง๋ ๋ค์ ๋ณต์กํฉ๋๋ค.
์ปดํ์ผ / ์ค์น (์ค๋น)์ ์๊ฐ์ด ๊ฑธ๋ฆฌ๋ ๊ณต์ "์"/ ํ์ด์๋ ์ข ์์ฑ ํธ๋ฆฌ๊ฐ ์๊ณ ์์ด์ด ์์ ์ ๋์์ ๋ ๋ฒ ์๋ํ๋ ค๊ณ ํ ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ฐ ์ธ์คํด์ค๋ ๊ณต์ ์์ธก ๊ฐ๋ฅํ ์์น์์ "์ค๋น"๋๊ณ ๋์์ ๋์ผํ ์์น์ "์ฐ๊ธฐ"ํ ์ ์์ต๋๋ค (ํ๋๋ ํ์ผ์ ์ญ์ ํ๊ณ ๋ค๋ฅธ ํ๋๋ ํ์ผ์ด ๊ณ์์์ ๊ฒ์ผ๋ก ์์ ํจ).
์ ๋์ด ์ด๋ก ์ ํ ์คํธํ๊ธฐ ์ํด ๋ถํ๋ ค์ง "์ค๋น"๋จ๊ณ๋ก ๊ฐ๋จํ ๊ฐ๋ ์ฆ๋ช ํจํค์ง๋ฅผ ๋ง๋ค๋ ค๊ณ ํ์ง๋ง ์๊ฐ์ด ์์์ต๋๋ค. ๋ด๊ฐ ์ดํดํ๊ธฐ ์ ์ ๋ค๋ฅธ ์ฌ๋์ด์ด ์ด๋ก ์ ํ ์คํธ ํ ์ ์์๊น์?
์ด๊ฒ์ ๋์์ ์คํ๋๋ ์ฌ๋ฌ ์์ฌ ์ธ์คํด์ค๊ฐ์์ ๋ ๋ฐ์ํฉ๋๋ค. ์ฌ๊ธฐ์ ์ค๋ช
๋ --mutex
์ต์
์ ์ฌ์ฉํ ์ ์์ต๋๋ค. https://yarnpkg.com/en/docs/cli/#toc -concurrency-and-mutex
@BYK ์ด๊ฒ์ด ๋ฌธ์ ๊ฐ ์๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ ๊ฒ ๊ฐ์ต๋๋ค. ๋ค๋ฅธ ์ฌ๋๋ค์์ด ์ต์ ์ด ๊ทธ๋ค์๊ฒ ๋ค๋ฅธ ๋ฌธ์ ๋ฅผ ์ผ์ผํจ๋ค ๊ณ ์ง์ ํ๊ธฐ๋ํ์ต๋๋ค.
@cinderblock # 6650์ ์ฃ์ง ์ผ์ด์ค์ฒ๋ผ --ignore-scripts
์ํด ํผํ ์ ์์ต๋๋ค.
๋ค๋ฅธ ๋ฆฌ๋๊ฐ์๋ ๊ฒฝ์ฐ ๋ค๋ฅธ ์ฌ๋์ด ๋๋ฒ๊น ์ ๋ ๋ง์ ์๊ฐ์ ํ ์ ํ ์ ์๋๋ก ๊ณต์ ํด์ฃผ์ธ์.
@BYK install
์คํฌ๋ฆฝํธ ๋ด์์ ์๋์ ์ผ๋ก yarn install
์ฌ์ฉํ๋ ์ฌ๋์ ๋ณธ ์ ์ด ์์ต๋๋ค. ๋น์ ์ด ๋ดค์ด ์ด ์ฌ์ํ package.json
์ด ๋ฌธ์ ๋ฅผ ์์ฐํ๋? ์ด ์ค๋ฅ๋ฅผ ์ ๋ฐํ๋ ์ข
์ ํจํค์ง์ ๋ฌด์ธ๊ฐ์ด๋ฉฐ, ์๋ง๋ install
๊ฐ ๋ฌปํ์์ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ package.json
๋ npm
์ ์๋ํฉ๋๋ค ...
๊ด๋ จ, --ignore-scripts
๊ถ์ฅ ๋ฐฉ๋ฒ / ์์น๋? ๋ง์ ํจํค์ง๊ฐ ์๋ํ๊ธฐ ์ํด ์ค์น ํ ์คํฌ๋ฆฝํธ์ ์์กดํฉ๋๋ค.
--ignore-scripts๋ ์ด๋ป๊ฒ / ์ด๋์์ ๊ถ์ฅ๋ฉ๋๊น? ๋ง์ ํจํค์ง๊ฐ ์๋ํ๊ธฐ ์ํด ์ค์น ํ ์คํฌ๋ฆฝํธ์ ์์กดํฉ๋๋ค.
์, ๊ทธ๋ฅ ์ฌ๊ธฐ์ ์ถ์ฒํ๋๋ฐ ์์ ๋ง์ ๋ฉค๋ฒ๋ค์ด ์ด๊ฒ์ ๋ํด ๋ชฉ์๋ฆฌ๋ฅผ ๋๋ค๊ณ ์๊ฐํฉ๋๋ค. ๐ ๋๋ถ๋ถ์ ํจํค์ง๋ ๊ด์ฐฎ์ง ๋ง ์ค์ ๋ก ์ค์น ํ scrpits์ ์์กดํ๋ ๋ช ๊ฐ์ง ํจํค์ง๊ฐ ์์ต๋๋ค.
์ด ์ฌ์ํ ํจํค์ง๋ฅผ ๋ณด์์ต๋๊น?
์, ๊ทธ๋ฌ๋ "์ฌ์ํ" package.json
ํ์ผ์กฐ์ฐจ๋ ๋งค์ฐ ํฐ ์ข
์์ฑ ํธ๋ฆฌ๋ฅผ ์์ฑ ํ ์ ์์ผ๋ฏ๋ก ์ฌ์ํ๋ค๊ณ ๋งํ๋ฉด์ ๋ค์ ๋ฐฉ๋ฒ ์ค ํ๋๋ก ํด์ํ๋ ๊ฒฝํฅ์ด ์๋ค๋ ์ ์ ์ ์ธํ๊ณ ๋ ํฌ๊ฒ ๋ณ๊ฒฝ๋์ง ์์ต๋๋ค.
๊ทธ๊ฒ๋ค ์ค ์ด๋ ๊ฒ๋ ๋์์ด๋์ง ์๊ธฐ ๋๋ฌธ์ ๋๋ ๋น์ ์ ์ฝ๋ฉํธ๋ฅผ ๋ฌด์ํ๋ ๊ฒฝํฅ์ด ์์ต๋๋ค.
์ค์ ๋ฌธ์ ์ ๊ฒฝ์ฐ yarn์ด mutex๋ก ์คํ ๋๋ ค๋ฉด --mutex
ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋ yarn ์ธ์คํด์ค๋ฅผ ํธ์ถํด์ผํ๋ฏ๋ก ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋๋์ง ํ์ธํ๋ ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ --install.mutex network
๋ฅผ .yarnrc
ํ์ผ (https://yarnpkg.com/en/docs/yarnrc#toc-cli-arguments ์ฐธ์กฐ). ์ฆ, ์ด๊ธฐ ์ค์น๊ฐ ๋ค๋ฅธ ์ค์น๋ฅผ ํธ๋ฆฌ๊ฑฐํ๋ฉด ๊ต์ฐฉ ์ํ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. ๋ ๋ฒ์งธ ์ค์น๋ ๊ธฐ๋ณธ ์ค์น๊ฐ ์๋ฃ ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆด ๊ฒ์ด๊ณ ๊ธฐ๋ณธ ์ค์น๋์ด ์คํฌ๋ฆฝํธ ํธ์ถ ์์ฌ์์ ์๋ฃ ๋ ๋๊น์ง ์ฐจ๋จ๋๋ฏ๋ก ์ค์ ๋ก๋ ๊ทธ๋ ์ง ์์ต๋๋ค. node
์ ๊ณตํ๋ ์ ๊ธ ๊ธฐ๋ณธ ์์๋ก๋ ๊ฑฐ์ ๋ถ๊ฐ๋ฅํ ์ค๋ ๋ / ํ๋ก์ธ์ค ์์ ์บ์ ์์คํ
์ ๊ตฌํํ๋ ๊ฒ ์ธ์์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ์๊ณ ์์ด์ผํฉ๋๋ค. ๊ฐ์ฅ ๊ฐ๊น์ด ๊ฒ์์ด ์ ์ ํ ์ ๊ธ ํจํค์ง์ฒ๋ผ ๋ณด์ด์ง๋ง ์ฐ๋ฆฌ ์ค ๋๊ตฌ๋ ๊ทธ๊ฒ์ ์๋ ํ ์๊ฐ์ด ์์์ต๋๋ค. ์ด๊ฒ์ ์บ์ ์ฐ๊ธฐ / ์ฝ๊ธฐ ์ฝ๋์ ๊ตฌํํ๋ ๋ฐ ๊ด์ฌ์ด ์๋ค๋ฉด ๋์ ๋๋ฆด ์ ์์ต๋๋ค.
@BYK ์,
๋ด ์ง์์ฑ์ ์ฉ์ํ์ง๋ง ๋ฎคํ
์ค ์ต์
์ด ์ด๋ป๊ฒ ํด๊ฒฐ์ฑ
์ธ์ง ์ฌ์ ํ ์ ์ ์์ต๋๋ค. ๋๋ ๋ฎคํ
์ค๋ก ์คํ์ ์๋ํ์ง๋ง ์ฌ์ ํ ๋์์ ์ค์ ์คํํ์ต๋๋ค. ํ
์คํธ์์ ์ค์๋ฅผํ์๊น์? yarn --mutex ...
์คํํ๋ฉด ํด๋น ์ต์
์ด ์์ ์ธ์คํด์ค์ ์ ๋ฌ ๋ ๊ฒ์ผ๋ก ์์ํ์ต๋๋ค (์ make
์ฒ๋ผ). ๋ํ --install.mutex network
์ ๋ด .yarnrc
ํ์ผ์ ์ถ๊ฐํ๋ผ๋ ์ ์์ ์๋ํ์ต๋๋ค (๋์ผํ ์ค๋ฅ). --verbose
๋ ์ต์
์ด๋ก๋๋๊ณ ์์์ ํ์ธํฉ๋๋ค.
๋ค๋ฅธ ๋ฐฉํฅ์์ ์ฌ ์ ์์๊น์? npm์ด ์๋ ์์ ๋ฌด์์ ๋๊น? npm์ ์ ๋์ผํ ๋ฌธ์ ๊ฐ ์์ต๋๊น?
@BYK , mutex
ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ์์ ํ ๋ฐ์ ๋ค์ผ ์ ์์ต๋๋ค. ์๋ํ๋ฉด _ ๋ค๋ฅธ ์ ๋ช
๋ น์ ์คํํ์ง ๋ชปํ๊ฒํ๋ ์ถ๊ฐ ์ ๋ฒ๊ทธ๊ฐ ์๊ธฐ ๋๋ฌธ์
๋๋ค _... ์ด๊ฒ์ "๋ด ํค๋ฅผ ๋ด ์ฐจ "๋"๊ฑฑ์ ํ์ง ๋ง์ธ์. ์๊ฐํ์ต๋๋ค!์ด ํธ๋ฆฌํ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋ ์ฐฝ๋ฌธ๊ณผ ๋ฌธ ์ ๊ธ ์ฅ์น๋ฅผ ๋๋๋ฆฌ๋ฉด ์ด์ ๋ค์๋ ์ฐจ๋ฅผ ์ ๊ธ ์ ์์ต๋๋ค! " ๐
์ฌ์ํ package.json
์ด๋ ์๋๋ , ์ด๊ฒ์ ๋ง์ ์ฌ๋๋ค์ด ์์ฌ๋ฅผ ์์ ํ ์ฌ์ฉํ ์ ์๊ฒ ๋ง๋๋ ํด๊ฒฐ์ฑ
์ด๋ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด์๋ ํฐ ๋ฌธ์ ์
๋๋ค. ๋ ๋ง์ ๊ด์ฌ์ ๋ฐ์์ผํฉ๋๋ค. ํนํ ์คํํ์ง _2 ๋
_์ ๊ฐ์ํ๋ฉด.
ํ
@BYK , mutex ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ์์ ํ ์ฉ๋ฉ๋์ง ์์ต๋๋ค. ์๋ํ๋ฉด ์ถ๊ฐ yarn ๋ฒ๊ทธ๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋ค๋ฅธ yarn ๋ช ๋ น์ ์คํํ ์ ์์ต๋๋ค ...
๊ทธ๋ฐ ๋ฒ๊ทธ์ ๋ํด ์๊ณ ์์ง ์์ต๋๋ค. ์ด๋ฏธ๋ณด๊ณ ๋ ๊ฒฝ์ฐ ์๋ ค์ฃผ์๊ฒ ์ต๋๊น? --mutex
์๋ ๋ฐฉ์์ ๋์ผํ ๋ฎคํ
์ค๋ฅผ ์ฌ์ฉํ๋ ๋ค๋ฅธ yarn
์ธ์คํด์ค๊ฐ ์ด๊ธฐ ์ธ์คํด์ค๊ฐ ์๋ฃ ๋ ๋๊น์ง ์คํ๋์ง ์๋๋กํ๋ ๊ฒ์
๋๋ค. ๊ทธ๋์ (๋น์ ์ ๋ฌ์ฌ๊ฐ ์๋๋ผ) ๋น์ ์ด ๋งํ๋ ๊ฒ์ "์์๋๋ก ์๋ํ๋ค"๋ ๊ฒ์ฒ๋ผ ๋ค๋ฆฝ๋๋ค.
์ฌ์ํ package.json์ด๋ ์๋๋ , ์ด๊ฒ์ ๋ง์ ์ฌ๋๋ค์ด ์์ฌ๋ฅผ ์์ ํ ์ฌ์ฉํ ์ ์๊ฒ ๋ง๋๋ ํด๊ฒฐ์ฑ ์ด๋ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด์๋ ํฐ ๋ฌธ์ ์ ๋๋ค. ๋ ๋ง์ ๊ด์ฌ์ ๋ฐ์์ผํฉ๋๋ค. ํนํ ์คํ ํ ์ง 2 ๋ ์ด ๋๋ค๋ ์ ์ ๊ณ ๋ คํ๋ฉด ๋์ฑ ๊ทธ๋ ์ต๋๋ค.
"๋ง์ ์ฌ๋๋ค์ด ์ค์ ์์ ํ ์ฌ์ฉํ ์ ์๊ฒ ๋ง๋ ๋ค"์ "2 ๋ ๋์ ์ด๋ ค์๋ค"๋ผ๋ ์์ ์ ๋ฌธ์ฅ์ ๋ด๋ถ ๋ชจ์์ ๋ํด ์ ์ ์๊ฐํด๋ณด์ญ์์ค. ์ด๋ฒ ํธ์๋ 5 ๋ช ์ Yarn ๋ฉ์ธํ ์ด๋์ ์ด 138 ๊ฐ์ ๋๊ธ์ด ํฌํจ ๋ 56 ๋ช ์ ์ฐธ๊ฐ์ ๋ง์ด ์ฐธ์ฌํ๊ณ ์์ผ๋ฉฐ, ๋๋ถ๋ถ์ด ๊ฐ์ ์ฃผ์ ๋ฅผ ๋๊ณ ์์ต๋๋ค. ์ด๊ฒ์ "๋ง์ ์ฌ๋"์ด ์๋๋๋ค. ์ด๊ฒ์ _ ์ผ๋ถ _ ์ฌ๋์ด๊ณ ๊ทธ๋ค์๊ฒ ์ค์ํ๋ค๊ณ ํ์ ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ ๋ ๊ทธ๋ค ์ค ๋๊ตฌ๋ ์ฝ๋ ์์ ํ ์ค์ ๋ณด๋ด๋ ๋ฐ ์ค์ํ๋ค๊ณ ์๊ฐํ์ง ์๊ณ ์์ ํ ์ ๊ณต๋๋ ์ํํธ์จ์ด์ ๋ํ ์์ ์ ์๊ตฌํ์ง ์์ต๋๋ค. ๊ทธ๋ค์๊ฒ ๋ฌด๋ฃ์ ๋๋ค.
@cinderblock
๋ด ์ง์์ฑ์ ์ฉ์ํ์ง๋ง ๋ฎคํ ์ค ์ต์ ์ด ์ด๋ป๊ฒ ํด๊ฒฐ์ฑ ์ธ์ง ์ฌ์ ํ ์ ์ ์์ต๋๋ค.
๋๊ธฐ์ ๊ด๋ จํ์ฌ ์ฉ์ํ ๊ฒ์ด ์์ต๋๋ค. ์ค์ ๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ค๊ณ ํ ๋ ์ถํํด์ผํฉ๋๋ค. :)
๋๋ yarn --mutex ...๋ฅผ ์คํํ๋ฉด ํด๋น ์ต์ ์ ํ์ ์ธ์คํด์ค์ ์ ๋ฌํ ๊ฒ์ผ๋ก ์์ํ์ต๋๋ค (์ : make๊ฐ ์ํํ๋ ์์ ).
๋๋ ๊ทธ๊ฒ์ด ์ ํด์ง๋ ๊ฒ์ด ์๋๋ผ๊ณ ํ์ ํฉ๋๋ค.
๋๋ ๋ํ ๋ด .yarnrc ํ์ผ์ --install.mutex ๋คํธ์ํฌ๋ฅผ ์ถ๊ฐํ๋ ์ ์์ ์๋ํ์ต๋๋ค (๋์ผํ ์ค๋ฅ). --verbose๋ ์ต์ ์ด๋ก๋๋๊ณ ์๋์ง ํ์ธํฉ๋๋ค.
๊ฝค ํฅ๋ฏธ ๋กญ์ต๋๋ค. .yarnrc
ํ์ผ์ ๋ฌด์ํ๊ณ ์ yarn ์ธ์คํด์ค๊ฐ ๋ค๋ฅธ ๋๋ ํฐ๋ฆฌ์์ ํธ๋ฆฌ๊ฑฐ๋๊ธฐ ๋๋ฌธ์ผ ์ ์์ต๋๋ค. ํด๋น ์ต์
๊ณผ ํจ๊ป ์ ์ญ .yarnrc
ํ์ผ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ ์ ์๋๋ฐ, ์ด๊ฒ์ด ์ ์ ํ ์๋ฃจ์
์ด๋ผ๊ณ ์๊ฐํ์ง ์์ต๋๋ค. ์ด์ ์ ์์ ํ๋๋ก ์ค์ ๋ก ์ค์น๋ฅผ ์ฐจ๋จํ๋์ง ํ์ธํ๊ธฐ ์ํด์๋ง ์๋ํด์ผํฉ๋๋ค.
๋ค๋ฅธ ๋ฐฉํฅ์์ ์ฌ ์ ์์๊น์? npm์ด ์๋ ์์ ๋ฌด์์ ๋๊น? npm์ ์ ๋์ผํ ๋ฌธ์ ๊ฐ ์์ต๋๊น?
Yarn๊ณผ npm์ด ์๋ ๋ฐฉ์์ด ๋๋ฌด ๋ค๋ฅด๋ค๋ ๋ค์ํ ์๊ฐ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ์ฌ๊ธฐ์ ์ค์ ๋ก ์ ์ฉ๋์ง ์๋๋ค๊ณ ์๊ฐํฉ๋๋ค. ์์ฒด ์ค์น์ ์ผ๋ถ๋ก ์์ฌ ์ค์น๋ฅผ ํธ๋ฆฌ๊ฑฐํ๋ ํจํค์ง๋ฅผ ์๋ณ ํ ์ ์๋ค๋ฉด ํด๊ฒฐ์ฑ
์ ์ฐพ์ ์ ์์ต๋๋ค. yarn
์คํ ํ์ผ์ ํธ์ถ ์์ค, cwd ๋ฐ ์ ๋ฌ ๋ ๋ชจ๋ ์ธ์๋ฅผ ๊ธฐ๋กํ ๋ค์ ํ์์ ๊ฐ์ด yarn์ ์คํํ์ฌ ์ ์ฉํ ๋๋ฒ๊ทธ ์ ๋ณด๋ฅผ ์ป๊ณ ๊ฑฐ๊ธฐ์์ ๊ณ์ํ๋ bash ์คํฌ๋ฆฝํธ๋ก ๋์ฒด ํ ์ ์์ต๋๊น?
๊ถ๊ทน์ ์ธ ํด๊ฒฐ์ฑ ์ ์์ ์ธ๊ธํ๋ฏ์ด ๋์์ฑ ์นํ์ ์ธ ์บ์ ๊ตฌํ์ด์ง๋ง ๋ ๋ง์ ๋๋ฒ๊น ์ ๋ณด๋ฅผ ํตํด ๋ ์ ๋ ดํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ฐพ์ ์ ์์ต๋๋ค.
์ด @cinderblock ๊ณผ ํ๋ ฅ ํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ๋๋จํ ๊ฐ์ฌํฉ๋๋ค.
๊ถ๊ทน์ ์ธ ํด๊ฒฐ์ฑ ์ ์์ ์ธ๊ธํ๋ฏ์ด ๋์์ฑ ์นํ์ ์ธ ์บ์ ๊ตฌํ์ด์ง๋ง ๋ ๋ง์ ๋๋ฒ๊น ์ ๋ณด๋ฅผ ํตํด ๋ ์ ๋ ดํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ฐพ์ ์ ์์ต๋๋ค.
๋จ์ํ ๋ ๋์์ฑ ์ฒ๋ฆฌ๋ฅผ ์ ๊ณตํ๋ ๊ฒ์ด ๊ฐ๋ฅํด์ผํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์๋ฅผ ๋ค์ด ๋น๋ ๋จ๊ณ์์ ๋ค๋ฅธ ์ ์ธ์คํด์ค๊ฐ ํธ์ถ๋๋ฉด ์๋จ ์ ํ๋ก์ธ์ค์ ์ํ ์บ์ ์์ ์ด ๊ฑฐ์ ์์ด์ผํฉ๋๋ค. ์ ์ด๋ ๊ทธ๊ฒ์ด ๋ด๊ฐ ๊ธฐ๋ํ๋ ๊ฒ์ ๋๋ค. ๊ฐ๋ฅํ ์คํฌ๋ฆฝํธ๋ฅผ ํธ์ถํ๊ธฐ ์ ์ ์บ์๊ฐ ๋์คํฌ๋ก ํ๋ฌ์๋๋์ง ํ์ธํ๋ ๊ฒ์ด ํธ๋ฆญ์ ์ํ ํ ์ ์์ต๋๋ค. ํ์ง๋ง ๊ตฌํํ๊ธฐ๊ฐ ์ผ๋ง๋ ๋ณต์กํ์ง๋ ํ์คํ์ง ์์ต๋๋ค.
@BYK ์ค! ๋๋ ํ์ ํจํค์ง๊ฐ ์คํฌ๋ฆฝํธ์์ yarn ...
๋ฅผ ํธ์ถ ํ ๊ฐ๋ฅ์ฑ์ ๊ณ ๋ คํ์ง ์์์ต๋๋ค. npm install
์ด ์คํจํ์ง ์๋ ์ด์ ๋ ์ข
์์ฑ์ด yarn ...
์คํํ ๋ ํ๋์ ์ธ์คํด์ค ๋ง ์คํ๋๊ธฐ ๋๋ฌธ์ด๋ผ๊ณ ์๊ฐํ์ญ๋๊น?
๋๋ ๋ฌ๋ฆฌ๊ธฐ๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์๋ค.
yarn cache clean
rm ./yarn.lock
yarn install
๊ทธ๋ฌ๋์ด ํ๋ก์ธ์ค๋ a) ๋ ์ด์ ์บ์๊ฐ์๊ณ ์ ๊ธ ํ์ผ์ด ์ ๊ฑฐ ๋์๊ธฐ ๋๋ฌธ์ ๋ชจ๋ ํจํค์ง๋ฅผ ๋ค์ ๋ค์ด๋ก๋ํ๊ธฐ ๋๋ฌธ์ ์ค๋ ๊ฑธ๋ฆฝ๋๋ค.
์ด๊ฒ์ ๋ก์ปฌ ์ปดํจํฐ์์ ํด๊ฒฐํ ์ ์์ง๋ง bitrise์ ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ ์์ฌ ๋ฌธ์ ๊ฐ ๋จ์ ์์ต๋๋ค. ์ฒ์๋ถํฐ ๊นจ๋ํ ์ด๋ฏธ์ง์ ๋๋ค. ๋จ์ผ ์์ฌ ํ๋ก์ธ์ค๊ฐ ์คํ์ค์ธ ๊ฒฝ์ฐ์๋ ๋คํธ์ํฌ ๋์์ฑ์ ์ด๋ค ๊ฒฝ์ฐ์๋ ํ์ํฉ๋๋ค.
@BYK
Tere๋ 5 ๋ช ์ Yarn ๊ด๋ฆฌ์์ ์ด 138 ๊ฐ์ ๋๊ธ์ ํฌํจํ์ฌ์ด ๋ฌธ์ ์ 56 ๋ช ์ ๋ถ๊ณผํ๋ฉฐ, ๋๋ถ๋ถ์ด ๊ฐ์ ์ฃผ์ ๋ฅผ ๋๊ณ ์์ต๋๋ค.
์ด repo์ ๊ฒฝ์ฐ ๊ฝค ๋์ ์ซ์ ์ธ ๊ฒ ๊ฐ์ต๋๋ค. ๋ชจ๋ ๋ฏธํด๊ฒฐ ์ด์์ ๋ง๊ฐ ์ด์ ์ค์์ ๊ฐ์ฅ ๋์ ๋๊ธ ์์ด๋ฉฐ ์ฐธ์ฌ์ ์๊ฐ ๊ฐ์ฅ ๋ง์ต๋๋ค.
๋๊ตฐ๋ค๋ (์๋ง๋) ๊ด๋ จ ๋ฌธ์ ๋ฅผ ์กฐ์ฌํ๋ ๋์ ๊ด๋ จ๋์์ ๊ฐ๋ฅ์ฑ์ด์๋ ๋ฌธ์ ๋ฅผ ๊ฐ์ง ๋ง์ ์ฌ๋๋ค์ ๋ณด์์ต๋๋ค. ์ํ๊น๊ฒ๋ ๋ง์ ์ฌ๋๋ค์ด ์์ฌ ์ ์ฒด๋ฅผ ํฌ๊ธฐํ๊ฑฐ๋ ์์ฌ ์ ๊ธ ํ์ผ์ด ๋ณ๊ฒฝ ๋ ๋๋ง๋ค --network-cocurrency 1
์์
๋น์ฉ์ ์ผ์ผฐ์ต๋๋ค. ๊ทธ๊ฒ์ด ๋ฐ๋ก ์ ๊ฐ ํ๋ก์ ํธ ์ค ํ๋๋ฅผ ์ํดํ๋ ์ผ์
๋๋ค. ๋ง์นจ๋ด ๊ทธ๊ฒ์ด ํ์ ์คํฌ๋ฆฝํธ๋ผ๋ ๊ฒ์ ์๊ฒ ๋ ๋๊น์ง ๋ง์
๋๋ค.
์ด๊ฒ์ "๋ง์ ์ฌ๋๋ค"์ด ์๋๋๋ค. ์ด๊ฒ์ ๋ช๋ช ์ฌ๋๋ค์ด๊ณ ๊ทธ๋ค์๊ฒ ์ค์ํ๋ค๋ ๊ฒ์ ํ์ ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ ๋ ๊ทธ๋ค ์ค ์ด๋ ๋๊ตฌ๋ ์ฝ๋ ์์ ํ ์ค์ ๋ณด๋ด๊ณ ์์ ํ ์ ๊ณต๋๋ ์ํํธ์จ์ด์ ๋ํ ์์ ์ ์๊ตฌํ๋ ๊ฒ์ ์ค์ํ๊ฒ ์ฌ๊ธฐ์ง ์์ต๋๋ค. ๊ทธ๋ค์๊ฒ ๋ฌด๋ฃ์ ๋๋ค.
Yarn์ ์ฌ๋๋ค์ด ์ฝ๊ฒ ๋ฐ์ด๋ค ์์๋ ์ ํ์ ํ๋ก์ ํธ๊ฐ ์๋๋๋ค. ๋น๋๊ธฐ ๋ฐฉ์์ผ๋ก ๋ง์ ์์ ์ ์ํํ๋ ๋ณต์กํ ์์คํ ์ ๋๋ค. ์ฆ, ๋๋ฒ๊ฑฐ๋ฅผ ์คํํ๊ณ ์คํ์ ๋ฐ๋ผ ๊ฐ๋ฉด์ ๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง ํ์ธํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์์ด ์ฝ๋๋ฒ ์ด์ค๋ฅผ ์ดํดํ๋ ๊ฒ์ ๊ฒฐ์ฝ ์ฌ์ด ์ผ์ด ์๋๋ฉฐ ์์ ํ๊ธฐ๋ ๋ ์ด๋ ต์ต๋๋ค. ์ง์ฅ,์ด ์์ ์์ ๋๋ ์ด๋ฏธ ์ฝ๋๋ฅผ ์ฝ๋ ๋ฐ ๋ฉฐ์น ๋์ ๋์ ๋ ์๊ฐ์ ๋ณด๋๊ณ , ๊ด๋ จ ํ ์คํธ๊ฐ ํฌํจ ๋ ๊ฐ๋จํ ํจ์น์กฐ์ฐจ ์ ์ถํ ๋งํผ ์์ ๊ฐ์ด ์๋ค. ๋ด๊ฐ 20 ๋ ์ด์์ ๊ฒฝํ์ ๊ฐ์ง๊ณ ์๊ณ ์ฝ๋ ์ฝ๊ธฐ๊ฐ ๋ด ์ ๋ฌธ ๋ถ์ผ ์ค ํ๋๋ผ๋ ์ ์ ๊ฐ์ํ ๋ ํ๊ท ๊ฐ๋ฐ์์๊ฒ ๊ฐ์ฅ ํฐ ๊ธฐํ๋ฅผ์ฃผ์ง ์์ ๊ฒ์ ๋๋ค.
์ฆ, ๋น ๋ฅด๊ณ ๊ฐ๋จํ ํ ์ค ์์ ์ด ํ๋ก์ ํธ์ ๋ด๋ถ ์์ ์ ์ต์ํ์ง ์์ ์ฌ๋์๊ฒ๋ ๋ฉฐ์น ์ ๊ฑธ์น ๋๊ท๋ชจ ํ๋ก์ ํธ๊ฐ ๋ ์ ์์ต๋๋ค. ๋ค์ํ ์ปค๋ฎค๋ํฐ์ ์กด์ฌํ๋ ์์ ์ ์ ์ฑ ์ ์ธ๊ธํ๊ธฐ ์ ์ ๋๋ค. ๋ช ๊ฐ์ง ํ๋กํ ์ฝ์ ๋ฐ๋ฅด์ง ์์๊ฑฐ๋, ์ฌ๋ฐ๋ฅธ ํ ์คํธ๋ฅผ ์์ฑํ์ง ์์๊ฑฐ๋, ์ฌ๋ฐ๋ฅธ ์ฌ์์ ๋ฐ๋ฅด์ง ์์๊ฑฐ๋, ๋ฌธ์ํ๋์ง ์์ ์ฝ๋ฉ ํ์ค์ ์์ ํ์ง ์์๊ธฐ ๋๋ฌธ์ ๋ค์ํ ์คํ ์์ค ํ๋ก์ ํธ์์ ์ต์ํ ๋ช ๊ฐ์ PR์ด ๊ฑฐ๋ถ๋์์ต๋๋ค. ์ธ๋ถ์ธ์ผ๋ก์ ๋๊ท๋ชจ ํ๋ก์ ํธ์ ์๋ฏธ์๊ฒ ๊ธฐ์ฌํ๋ ๊ฒ์ ๋์ ์ด ๋ ์ ์์ต๋๋ค.
์ด๊ฒ์ด ์ ๋ง๋ก ๋น์ ์๊ฒ ํ ์ค์ง๋ฆฌ ์์ ์ด๋ผ๋ฉด, ๊ทธ๊ฒ์ํ์ง ์๋ ๋ค๋ฅธ ์ฌ๋๋ค์ ๋นํํ๋ ๊ธด ๊ฒ์๋ฌผ์ ์์ฑํ๋ ๋์ ์์ ์ ์์ฑํ๋ ๊ฒ์ด ๋ ๋น ๋ฅด์ง ์์ต๋๊น?
์์ฒด ์ค์น์ ์ผ๋ถ๋ก ์์ฌ ์ค์น๋ฅผ ํธ๋ฆฌ๊ฑฐํ๋ ํจํค์ง๋ฅผ ์๋ณ ํ ์ ์๋ค๋ฉด ํด๊ฒฐ์ฑ ์ ์ฐพ์ ์ ์์ต๋๋ค.
์ฌ๊ธฐ์ ์ด๋ฐ ์ข
๋ฅ์ ๋์์ ๋ํ๋ด๋ ํจํค์ง์ ์๊ฐ ์์ง๋ง yarn install
์ด (๊ฐ) ํ์๋์ง ์๋ ๊ฒฝ์ฐ ( bob build
๊ฐ ์ํํ์ง ์๋ ํ,์ด ๋ฌธ์ ๋ ๋ช
๋ น์ "prepare": "node ./scripts/generate-mappings",
)์
๋๋ค.
๊ถ๊ทน์ ์ธ ํด๊ฒฐ์ฑ ์ ์์ ์ธ๊ธํ๋ฏ์ด ๋์์ฑ ์นํ์ ์ธ ์บ์ ๊ตฌํ์ด์ง๋ง ๋ ๋ง์ ๋๋ฒ๊น ์ ๋ณด๋ฅผ ํตํด ๋ ์ ๋ ดํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ฐพ์ ์ ์์ต๋๋ค.
๊ทธ๋ฌํ ์ํฉ์ด ๊ฐ์ง๋๋ฉด (๊ฐ์ง ๊ฐ๋ฅํ๋ค๊ณ ๊ฐ์ ํ ๋) ๊ฒฝ๊ณ ๋ฅผ ์์ํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๋์์ฑ ์นํ์ ์ธ ์บ์๋ ์ ์ด๋ ํ ์ ์ปค๋ฎค๋ํฐ ๊ตฌ์ฑ์์ด ์ง์ค์ ์ผ๋ก ๋ ธ๋ ฅํด์ผํ๋ ๊ฒ์ฒ๋ผ ๋ณด์ ๋๋ค.
์ ๋ฐ์ดํธ ๋ ์๋ํ๋ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ฐพ์์ต๋๋ค .... git ํ์ ๋ชจ๋์ ์ฌ์ฉํ ๋ค์ ํจํค์ง์ ์์น๋ฅผ โโ๋ก์ปฌ ํด๋๋ก ์ง์ ํฉ๋๋ค. ์ด์์ ์ด์ง๋ ์์ง๋ง ์๋ํฉ๋๋ค.
CircleCI์์๋์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฉฐ ํฐ ๋ฌธ์ ์
๋๋ค. ๋ฌธ์ ๋ github.com ๋ฐ Linux (OSX์์ ์๋)์ ํธ์คํ
๋ ํจํค์ง๋ฅผ ์ฌ์ฉํ๋ ๊ฒ๊ณผ ๊ด๋ จ๋ ๊ฒ์ผ๋ก ๋ณด์
๋๋ค. mutex
๋ฐ network-concurrency
์ต์
์ ์๋ฌด ์์
๋ ์ํํ์ง ์์ต๋๋ค.
"my-js-lib": " ssh : //[email protected] : dgobaud / my-js-ib # 1.0.0"
์ ๊ฑฐํ๋ฉด CircleCI์์ ์๋ํฉ๋๋ค. ๋ก์ปฌ์์๋ ์์ฌ 1.17.0์ ์ฌ์ฉํ์ฌ OSX์์ ์๋ํฉ๋๋ค.
๊ทธ๋ฌ๋ ๋ ธ๋ 12.8.1 ๋ฐ ์์ฌ 1.17.3 (์ ์ด๋ฏธ์ง circleci / node : latest)์ด์๋ CircleCI์์๋ ์๋ํ์ง ์์ต๋๋ค.
๋๋ Node 8.15.0 ๋ฐ yarn 1.12.3 (์ ์ด๋ฏธ์ง circleci / node : 8.15.0)
#!/bin/bash -eo pipefail
yarn install --mutex network --network-concurrency 1
yarn install v1.12.3
[1/4] Resolving packages...
warning Resolution field "[email protected]" is incompatible with requested version "mixin-deep@^1.2.0"
warning Resolution field "[email protected]" is incompatible with requested version "set-value@^2.0.0"
warning Resolution field "[email protected]" is incompatible with requested version "set-value@^0.4.3"
[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...
$ cd functions && yarn install
yarn install v1.12.3
[1/5] Validating package.json...
[2/5] Resolving packages...
warning Resolution field "[email protected]" is incompatible with requested version "mixin-deep@^1.2.0"
warning Resolution field "[email protected]" is incompatible with requested version "set-value@^2.0.0"
warning Resolution field "[email protected]" is incompatible with requested version "set-value@^2.0.1"
[3/5] Fetching packages...
[1/5] Validating package.json...
[2/5] Resolving packages...
[3/5] Fetching packages...
error https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz: Extracting tar content of undefined failed, the file appears to be corrupt: "ENOENT: no such file or directory, chmod '/home/circleci/.cache/yarn/v4/npm-lodash-4.17.15-b447f6670a0455bbfeedd11392eff330ea097548/node_modules/lodash/_arrayReduceRight.js'"
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
info There appears to be trouble with your network connection. Retrying...
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
Exited with code 1
--network-concurrency 1 ์ฑ๊ณต, --network-concurrency 8 ์คํจ, circleCI / node : 10
๋๊ตฐ๊ฐ Yarn์ด EEXIST ๋ฐ EOENT์์ ์คํจํด์ผํ๋ ์ด์ ๋ฅผ ์ดํดํ๋๋ก ๋์ ์ค ์ ์์ต๋๊น?
EEXIST์ ๊ฒฝ์ฐ Yarn์ด ์ด์ ๋ํด ๊ฒฝ๊ณ ํ ๋ค์ ํ์ผ์ ์ฌ์ ์ ํ ๊ฒ์ผ๋ก ์์ํฉ๋๋ค.
EOENT์ ๊ฒฝ์ฐ Yarn์ด ๋๋ฝ ๋ ํด๋ (์ผ๋ฐ์ ์ผ๋ก ๋ฌธ์ ์ ์์ธ)๋ฅผ ์์ฑ ํ ๊ฒ์ผ๋ก ์์ํฉ๋๋ค.
๋๋ ๊ทธ๊ฒ์ด ๋ถ์์ฉ์ด์์ ์ ์๋ค๋ ๊ฒ์ ์ดํดํ๋ค. ๊ทธ๋์ ์๋ง๋์ด ํ๋์ ํ๋๊ทธ๋ก ๋ ์๊ฒฉํด์ง ์์๋ค (๋๋ ๊ทธ ๋ฐ๋๋ก).
๊ทธ๋ฌ๋ ์ด๋ฌํ ์ค๋ฅ๋ฅผ ์ ์งํ๋ ์ด์ ๋ ๋ฌด์์ ๋๊น? ๊ทธ๋ค์ ๋๊ตฌ์๊ฒ๋ ์ ์ฉํ์ง ์์ต๋๋ค.
@BYK ์ฃ์กํฉ๋๋ค, ๋ฐฉ๊ธ ๊ทํ์ ์๊ฒฌ์ ๋ดค์ต๋๋ค
๊ทธ๋ฐ ๋ฒ๊ทธ์ ๋ํด ์๊ณ ์์ง ์์ต๋๋ค. ์ด๋ฏธ๋ณด๊ณ ๋ ๊ฒฝ์ฐ ์๋ ค์ฃผ์๊ฒ ์ต๋๊น?
--mutex
์๋ ๋ฐฉ์์ ๋์ผํ ๋ฎคํ ์ค๋ฅผ ์ฌ์ฉํ๋ ๋ค๋ฅธyarn
์ธ์คํด์ค๊ฐ ์ด๊ธฐ ์ธ์คํด์ค๊ฐ ์๋ฃ ๋ ๋๊น์ง ์คํ๋์ง ์๋๋กํ๋ ๊ฒ์ ๋๋ค. ๊ทธ๋์ (๋น์ ์ ๋ฌ์ฌ๊ฐ ์๋๋ผ) ๋น์ ์ด ๋งํ๋ ๊ฒ์ "์์๋๋ก ์๋ํ๋ค"๋ ๊ฒ์ฒ๋ผ ๋ค๋ฆฝ๋๋ค.
์ด๊ฒ์ ๋ฒ๊ทธ์ ๋๋ค : https://github.com/yarnpkg/yarn/issues/2629#issuecomment -481297806์์ ์ธ๊ธํ๋ฏ์ด https://github.com/yarnpkg/yarn/issues/6650 ์ด ์ค๋ ๋์ "๋ ๋ง์ ๊ธฐ๋ก๋ณด๊ธฐ")
์ด๋ฒ ํธ์๋ 56 ๋ช ์ ์ฐธ๊ฐ์ ๋ง ์์ต๋๋ค.
๊ธ์, ๊ทธ๊ฒ ๊ณต์ ํ ์ง์ ์ด์ผ
์ด ๋ฒ๊ทธ๋ ์ฌ์ ํ yarn v1.19.1์ ์์ต๋๋ค. ์ Yarn Team์ด์ด ๊ท์ฐฎ์ ๋ฒ๊ทธ๋ฅผ ๊ณ ์น์ง ์๋์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
์ฌ๊ธฐ ๋ด .yarnrc
์์ผ๋ฉฐ ๋์์ด๋์ง ์์ต๋๋ค.
save-prefix ""
--install.check-files true
--add.check-files true
--remove.check-files true
--install.frozen-lockfile true
--add.frozen-lockfile true
--remove.frozen-lockfile true
--install.mutex network
--install.mutex file
๋ฐฉ๊ธ npx lerna clean && ./yarn-install-in-loop.sh
๋ฅผ ์คํํ๋ฉด ๋์์ด๋๋ค๋ ์ฌ์ค์ ์๊ฒ๋์์ต๋๋ค.
๋ด monorepo์์ ๋ชจ๋ node_modules
๋๋ ํ ๋ฆฌ๋ฅผ ์ ๋ฆฌ (์ ๊ฑฐ)ํ๋ฉด ๋์์ด๋ฉ๋๋ค.
@gitowiec์์ ํ์ธํ ์ ์์ต๋๋ค. ๋ด ์ปจํ
์ด๋ํ ๋ yarn install
ํธ์ถ์ ํ์ผ ์์คํ
์์ ๋ฐ์ดํฐ๋ฅผ ๊ฒฝ์ฃผํ๋ ๊ฒ์ด๋ฉฐ yarn
์ ๋จ์ผ .yarnrc
ํ์ผ๋ก ์ ํํ๋ ค๋ ๋ชจ๋ ์๋๊ฐ ์คํจํฉ๋๋ค. ํฌ๊ธฐํ๊ณ npm
๋ก ๋์๊ฐ๋๋ค.
๋ด ๋ฌธ์ ๊ฐ ์ฌ๋ฌ ์์ค (์ : ๋ด ํจํค์ง-> git ํจํค์ง-> git ํจํค์ง-> git ํจํค์ง)์ ํตํด git ์ ์ฅ์์ ํจํค์ง ์ข
์์ฑ์ด ์๋ค๋ ๊ฒ์ ๋ฐ๊ฒฌํ์ต๋๋ค. ๋ํ ์ค์น ์ค ์บ์๋ npm์ ๋นํด ์ ๋๋ก ์๋ํ์ง ์์์ต๋๋ค (npm์ ํ ๋ฒ๋ง ์ฒดํฌ ์์ํ์ง๋ง ๋์ผํ ์ค์น ์ค์ ๋์ผํ ํจํค์ง๋ฅผ ์ฌ๋ฌ ๋ฒ ์ ์ฒดํฌ ์์).
npm์ผ๋ก ๋์๊ฐ๋๋ค. v6๋ถํฐ ์ ์๋ํฉ๋๋ค.
์์์ ์ธ๊ธ ํ์ด ๋ฌธ์ ๋ ์ฌ์ ํ ์กด์ฌํฉ๋๋ค. ๋ค์์ ์ฐ๋ฆฌ๊ฐ ํ
์คํธ๋ฅผ ํต๊ณผ ํ ์ ์๋๋ก circleci์ ๋ํ config.yml
์
๋๋ค.
- run:
name: Yarn Install
source ~/setyarnpath.sh
i=5; until yarn; do echo "Yarn failed. Retrying..."; ((i--)); if [[ "$i" == '0' ]]; then break; fi; done
๋๋ ๊ฐ์ ๋ฌธ์ ๋ฅผ ๊ฒช๊ณ ์์๋ค. ๋ด ์ฝ๋์ node_modules๊ฐ ๋ด๋ถ์์๋ ํธ์คํธ [1] ๋ณผ๋ฅจ์ผ๋ก macOS ๋ฐ docker-compose ์ฌ์ฉ.
node_modules๊ฐ ์ต๋ช ๋ณผ๋ฅจ ์์ ์๋๋ก ๋ณ๊ฒฝ๋์์ง๋ง ๋ช ๋ช ๋ ๋ณผ๋ฅจ๋ ์๋ ํ ๊ฒ ๊ฐ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ง๊ธ์ ์ ์๋ํ๊ณ ์์ผ๋ฉฐ ์ข ์์ฑ์ ํจ์ฌ ๋น ๋ฅด๊ฒ ์ค์นํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋ด docker-compose ํ์ผ์ด ๋ค์์์ ๋ณ๊ฒฝ๋์์ต๋๋ค.
services:
...
web:
build: .
volumes:
- .:/home/example
ports:
- "3000:3000"
...
์:
services:
...
web:
build: .
volumes:
- .:/home/example
- /home/example/node_modules
ports:
- "3000:3000"
...
[1] https://success.docker.com/article/different-types-of-volumes
์ต๊ทผ yarn
์์์ด ๋ฌธ์ ์ ์๋ก์ด ์ฆ์์ด๋ผ๊ณ ์๊ฐ๋๋ ์๋ก์ด ์ค๋ฅ๊ฐ ํ์๋ฉ๋๋ค.
yarn stdout [1/4] Resolving packages...
yarn stdout [2/4] Fetching packages...
yarn stderr error https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz: Extracting tar content of undefined failed, the file appears to be corrupt: "EEXIST: file already exists, mkdir '/home/pi/.cache/yarn/v6/npm-prettier-1.19.1-f7d7f5ff8a9cd872a7be4ca142095956a60797cb-integrity/node_modules/prettier'"
yarn stdout info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
yarn stderr Process stalled
yarn stderr Active handles:
yarn stderr - Socket
yarn stderr - Socket
yarn stderr - Socket
yarn stderr - TLSSocket
yarn stderr - TLSSocket
yarn stderr - TLSSocket
์ฐธ๊ณ : yarn stderr/out
๋ ๋ด ํ๋ก๊ทธ๋จ์ด ๋ด ํ๊ฒฝ์์ yarn์ ์ถ๋ ฅ์ ์ ๊ณตํ๋ ์ ๋์ฌ์
๋๋ค.
๋ด ํ๋ก์ ํธ๊ฐ ์ด๋ฌํ ์๋ก์ด ์ฆ์์ด ๋ฐ์ํ๋ ๊ฒ๊ณผ ๋์ผํ ๋ฐฉ์์ผ๋ก ์ด์ ์ฆ์์ ์๋นํ ์ผ๊ด๋๊ฒ ์์ฑ ํ ์ ์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ด ๋์ผํ ๋ฌธ์ ๋ผ๊ณ ์๊ฐํฉ๋๋ค (๊ทธ๋ฆฌ๊ณ ์ด์ ์ฆ์์ด ์ค์ง๋จ).
์ฐธ๊ณ ๋ก ์ด๊ฒ์ yarn ์บ์์ node_modules
์ง์ฐ ๊ฑฐ๋ ํน์ git ํจํค์ง ์ข
์์ฑ์ ์
๋ฐ์ดํธ ํ ํ ์ค์น์ ๋ฐ์ํฉ๋๋ค.
ํน์ ํจํค์ง ์ข
์์ฑ์ ๋ด๊ฐ ์ค์ ๋ก ์์กดํ๋ ๋ค๋ฅธ git ํจํค์ง์ ์ข
์์ฑ์
๋๋ค (๋ ๋ค TypeScript์ ์์กดํ๋ ์ ์ฌํ prepare
๋จ๊ณ๊ฐ ์์). #master
์์ ์ด๋ฌํ ์ข
์์ฑ์ ๋ณ๊ฒฝํ๊ณ yarn upgrade --latest
์ ์ํํ๋ฉด ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค (๋ฐ ํ์ yarn install
.
ํด๋น ํ์ ํจํค์ง๋ฅผ ์๋์ผ๋ก ์
๋ฐ์ดํธํ๋ฉด (์์ ํ ๋ณ๋์ node_modules
ํด๋๋ก!) yarn install
๊ฐ ๋ค์ ์๋ํฉ๋๋ค. ์ด๊ฒ์ ์์ด ์ค์๋ก ๋ ํ๋ก์ธ์ค์์ ๋์์ ์บ์๋ฅผ ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ ์ด๋ก ์ธํด์ด ๋ฌธ์ ์์ ๋ณผ ์์๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ด๊ฒ์ git ์์กด์ฑ์ ์ํด ์ค์น๋ 2 ๊ฐ ์ด์์ ํจํค์ง๋ฅผ ์ฌ์ฉํ ๋ ๋์๊ฒ ๋ฐ์ํฉ๋๋ค. ์ด๋ป๊ฒ ๋ prepare
์คํฌ๋ฆฝํธ๋ฅผ ์คํํ๋ ๋์ผํ ํจํค์ง์ ์ฌ๋ฌ ํ๋ก์ธ์ค๊ฐ ์์ต๋๋ค. ๋ํ ๋ง์ง๋ง ๋ฆด๋ฆฌ์ค์์๋ npm์ผ๋ก ์คํจํ๊ธฐ ์์ํฉ๋๋ค.
Dependencies:
A -> B & C (both by git, with prepare script)
B -> C (by git, with prepare script)
์ด๊ฒ์ ์๋
๊ฐ ์ด๋ ธ์ผ๋ฉฐ ์ฌ์ ํ ์์ฌ 1.22.0์์ ๋ฐ์ํฉ๋๋ค.
๋๋ ์ด์์ด ๋ฌด์จ ์ผ์ด ๋ฒ์ด์ง๊ณ ์๋์ง ๋๋ฒ๊น
ํ๋ ค๊ณ ๋ช ์๊ฐ์ ๋ณด๋๊ณ , ๋ด๊ฐ ์ ์ผํ ์ฌ๋์ด ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
์ง๊ธ๋ณด๊ณ ์๋ ์ ์ผํ ํด๊ฒฐ์ฑ ์ npm์ผ๋ก ์ ํํ๋ ๊ฒ์ ๋๋ค.
@gregory ํ์์ ๊ฒฝ์ฐ 2019 ๋ 6 ์์ ์ ์ฌ๋ 2 ~ 4 ๋ฒ์ ์ฌ์คํ์ด ํ์ํ๋๋ผ๋ ํญ์ ํ์ํ ํจํค์ง๋ฅผ ์ค์นํ๋ ๊ฒ์ ๊ธฐ์ตํฉ๋๋ค. ๋ํ ์ด๋ฌํ ์ฌ์คํ์๋ ๋ถ๊ตฌํ๊ณ ์ ์ฌ๋ ์ฌ์ ํ npm๋ณด๋ค ๋น ๋ฆ ๋๋ค.
๋ค์๊ณผ ๊ฐ์ ๋ช ๋ น์ ์ฌ์ฉํ์ฌ yarn์ด ์๋ฃ ๋ ๋๊น์ง ๋ค์ ์คํํฉ๋๋ค.
while ! yarn install; do echo --- ; done
์ฐ๋ฆฌ์๊ฒ ์ฌ์ด ํด๊ฒฐ์ฑ ์ ๊ฐ์ธ ํจํค์ง๋ฅผ ๊ฒ์ํ๊ณ git ๋งํฌ ๋์ ์ฌ์ฉํ๋ ๊ฒ์ด ์์ต๋๋ค. ๊ทธ๋๋ ์ฌ์ ํ ์ง์ฆ๋
while ! yarn install; do echo --- ; done
์ ์ผํ ํด๊ฒฐ์ฑ ์ ๋ฌด์ฐจ๋ณ ๋์ ์ด๋ผ๋ ์ฌ์ค์ ์ ๋ง ์ฌํ๋ค ...
cc @arcanis
ํ์ ์ค ์ค์น๋ฅผ ๋ ๋ฒ ์๋ํ๋ฉด ์ฒ์์๋ ์๋ํ์ง๋ง ์คํจํฉ๋๋ค.
๋น ๋ฅด๊ณ ์์ ์ ์ด๋ฉฐ ์์ ํ ์ข ์์ฑ ๊ด๋ฆฌ.
๊ทธ๊ฒ์ ์ ๋ขฐํ ์ ์์ต๋๋ค.
```[3/5] ํจํค์ง ๊ฐ์ ธ ์ค๋ ์ค ...
์ค๋ฅ https://registry.yarnpkg.com/lz4/-/lz4-0.6.3.tgz : ์ ์๋์ง ์์ tar ์ฝํ
์ธ ์ถ์ถ์ ์คํจํ์ต๋๋ค. ํ์ผ์ด ์์๋ ๊ฒ ๊ฐ์ต๋๋ค. "ENOENT : ํด๋น ํ์ผ ๋๋ ๋๋ ํฐ๋ฆฌ๊ฐ ์์ต๋๋ค. '/ app /.cache/yarn/v6/npm-lz4-0.6.3-78df6bb69a36d7db6c2e849494876ba6e38e66d6-integrity/node_modules/lz4/build/Release/obj.target/build/Release/lz4.node '->'/app/.cache/yarn /v6/npm-lz4-0.6.3-78
df6bb69a36d7db6c2e849494876ba6e38e66d6-integrity / node_modules / lz4 / build / Release / obj.target / lz4.node ' "
info์ด ๋ช
๋ น์ ๋ํ ์ค๋ช
์๋ฅผ ๋ณด๋ ค๋ฉด https://yarnpkg.com/en/docs/cli/install ์ ๋ฐฉ๋ฌธ
[1/5] package.json ํ์ธ ์ค ...
[2/5] ํจํค์ง ํด๊ฒฐ ์ค ...
[3/5] ํจํค์ง ๊ฐ์ ธ ์ค๋ ์ค ...
์ ๋ณด ๋คํธ์ํฌ ์ฐ๊ฒฐ์ ๋ฌธ์ ๊ฐ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ฌ์๋ ์ค ...
info [email protected] : "linux"ํ๋ซํผ์์ด ๋ชจ๋๊ณผ ํธํ๋์ง ์์ต๋๋ค.
์ ๋ณด " [email protected] "๋ ์ ํ์ ์ข
์์ฑ์ด๋ฉฐ ํธํ์ฑ ๊ฒ์ฌ์ ์คํจํ์ต๋๋ค. ์ค์น์์ ์ ์ธํฉ๋๋ค.
info [email protected] : "linux"ํ๋ซํผ์์ด ๋ชจ๋๊ณผ ํธํ๋์ง ์์ต๋๋ค.
์ ๋ณด " [email protected] "๋ ์ ํ์ ์ข
์์ฑ์ด๋ฉฐ ํธํ์ฑ ๊ฒ์ฌ์ ์คํจํ์ต๋๋ค. ์ค์น์์ ์ ์ธํฉ๋๋ค.
[4/5] ์ข
์์ฑ ์ฐ๊ฒฐ ...
[5/5] ์๋ก์ด ํจํค์ง ๋ง๋ค๊ธฐ ...
$ npm run prepare : mjs && npm run prepare : js
[email protected] ์ค๋น : mjs /app/.cache/yarn/v6/.tmp/43563e016bb56318ebd76037a0f6ce2f.73d5f4dbffab6f6a27f26c6611e32662c98c2891.prepare
BABEL_ESM = 1 babel src -d. -ํ์ผ ํ์ฅ์ ์ ์ง
Babel๋ก 39 ๊ฐ์ ํ์ผ์ ์ฑ๊ณต์ ์ผ๋ก ์ปดํ์ผํ์ต๋๋ค.
[email protected] prepare : js /app/.cache/yarn/v6/.tmp/43563e016bb56318ebd76037a0f6ce2f.73d5f4dbffab6f6a27f26c6611e32662c98c2891.prepare
๋ฐ๋ฒจ src -d.
Babel๋ก 39 ๊ฐ์ ํ์ผ์ ์ฑ๊ณต์ ์ผ๋ก ์ปดํ์ผํ์ต๋๋ค.
[3/5] ํจํค์ง ๊ฐ์ ธ ์ค๋ ์ค ...
์ค๋ฅ https://registry.yarnpkg.com/lz4/-/lz4-0.6.3.tgz : ์ ์๋์ง ์์ tar ์ฝํ
์ธ ์ถ์ถ์ ์คํจํ์ต๋๋ค. ํ์ผ์ด ์์๋ ๊ฒ ๊ฐ์ต๋๋ค. "ENOENT : ํด๋น ํ์ผ ๋๋ ๋๋ ํฐ๋ฆฌ๊ฐ ์์ต๋๋ค. '/ app /.cache/yarn/v6/npm-lz4-0.6.3-78df6bb69a36d7db6c2e849494876ba6e38e66d6-integrity/node_modules/lz4/build/Release/obj.target/build/Release/lz4.node '->'/app/.cache/yarn /v6/npm-lz4-0.6.3-78
df6bb69a36d7db6c2e849494876ba6e38e66d6-integrity / node_modules / lz4 / build / Release / obj.target / lz4.node ' "
info์ด ๋ช
๋ น์ ๋ํ ์ค๋ช
์๋ฅผ ๋ณด๋ ค๋ฉด https://yarnpkg.com/en/docs/cli/install ์ ๋ฐฉ๋ฌธ
์ ๋ณด ๋คํธ์ํฌ ์ฐ๊ฒฐ์ ๋ฌธ์ ๊ฐ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ฌ์๋ ์ค ...
```
์์ฌ๊ฐ ์ ์ ํ๋ฅผ ๊ฑธ ์๋์ง ์๋ ์ฌ๋์ ๋๊ตฌ๋
error https://registry.yarnpkg.com/lz4/-/lz4-0.6.3.tgz: Extracting tar content of undefined failed, the file appears to be corrupt: "ENOENT: no such file or directory, link '/app/.cache/yarn/v6/npm-lz4-0.6.3-78df6bb69a36d7db6c2e849494876ba6e38e66d6-integrity/node_modules/lz4/build/Release/obj.target/build/Release/lz4.node' -> '/app/.cache/yarn/v6/npm-lz4-0.6.3-
df6bb69a36d7db6c2e849494876ba6e38e66d6-integrity/node_modules/lz4/build/Release/obj.target/lz4.node'"
์ฌ๋ฐ๋ฅธ ๊ฒฝ๋ก๊ฐ ์์ด์ผ ํ ๋ :
/app/.cache/yarn/v6/npm-lz4-0.6.3-78df6bb69a36d7db6c2e849494876ba6e38e66d6-integrity/node_modules/lz4/build/Release/lz4.node
์ด๋ค ์ด์ ๋ก ์์ฌ๊ฐ obj.target/build/Release/
๋ฅผ ์ถ๊ฐํ๋ ๊ฒ ๊ฐ์ต๋๋ค. https://github.com/yarnpkg/yarn/commit/0e7133ca28618513503b4e1d9063f1c18ea318e5 ์ ๊ด๋ จ์ด์์ ์ ์์ต๋๋ค.
๋๋ ์ด์ ๋๊ฐ์ ์ค๋ง์ค๋ฝ๊ณ ์ค๋ฅ๋ฅผ ๋๋ฒ๊น
ํ๊ธฐ๊ฐ ์ด๋ ต์ต๋๋ค. ์ ๊ฒฝ์ฐ์ ๋ฌธ์ ๋ ๋ค๋ฅธ ํจํค์ง (ํนํ ava
๋ฒ์ 2 ๋ฐ 3)์์ ๋์ผํ ์ข
์์ฑ์ ๋ค๋ฅธ ๋ฒ์ ์ผ๋ก ์ธํด ๋ฐ์ํ๋ yarn workspace
๋์ ์ธ ๊ฒ ๊ฐ์ต๋๋ค. ava
์ ๋ชจ๋ ํญ๋ชฉ์ ์ต์ ๋ฒ์ ์ผ๋ก ์
๊ทธ๋ ์ด๋ ํ ํ์์ผ์ด ์ค๋ฅ๊ฐ ๋ฐ์ํ์ง ์์ต๋๋ค.
๋๋ 1.22.4
ํ๊ณ ์์ผ๋ฉฐ ๋ช ์๊ฐ ๋์์ด ๋ฌธ์ ์ ๋จธ๋ฌผ๋ฌ ์์ต๋๋ค. ์ฐ๋ฆฌ์ monorepo์๋ ๋์ผํ ํจํค์ง๋ฅผ ์ฌ์ฉํ๋ ์ฌ๋ฌ ๋ชจ๋์ด ์์ต๋๋ค. ๋ง์ง๋ง์ผ๋ก ๋ค์์ ์ ์ฉํ์ฌ ์ ๋ ฌํ์ต๋๋ค.
1) ๋ชจ๋ ๋ชจ๋์์ ๋์ผํ ๋ฒ์ ์ ํจํค์ง๋ฅผ ์ฌ์ฉํ๋์ง ํ์ธํ์ญ์์ค. devDependencies
์์๋ ํ์คํ ์ถฉ๋์ด ๋ฐ์ํฉ๋๋ค.
2) ๋ชจ๋ package.json
ํ์ผ์ monorepo์์๋ ๋ชจ๋ ๋ฒ์ ์ ๊ณ ์ ํฉ๋๋ค.
1.22.4
์์ ์ฌ์ ํ ๋ฌธ์ ๊ฐ ์์์ ํ์ธํ ์ ์์ต๋๋ค. ์๋๋ mocha
์๊ณ ๋ชจ๋ ํจํค์ง๊ฐ ๋์ผํ ๋ฒ์ ์ ์ฌ์ฉํ๊ณ ์๋์ง ํ์ธํ ํ ์ด์ camelcase
์์ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.์ด ์ค๋ฅ๋ ๋ด ํ๋ก์ ํธ์์๋ ์ฌ์ฉํ์ง ์์ต๋๋ค. yargs
, ์๋ง๋ Lerna์์ ์จ ๊ฒ์
๋๋ค.
error ์๊ธฐ์น ์์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค : "ENOENT : no such file or directory, lstat '/ code / project / src / packages / private-package / node_modules / camelcase'".
ํด๊ฒฐ์ฑ
์ด ์๋์ง ๋ฌผ์ด๋ด๋ ๋ ๊น์? ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด node_modules
20 ๊ฐ์ yarn.lock
์ (๋ฅผ) ๊ณ์ ์ญ์ ํฉ๋๋ค.
ํด๊ฒฐ์ฑ ์ด ์๋์ง ๋ฌผ์ด๋ด๋ ๋ ๊น์? ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด
node_modules
20 ๊ฐ์yarn.lock
์ (๋ฅผ) ๊ณ์ ์ญ์ ํฉ๋๋ค.
์ ๋ ๊ฐ์ธ์ ์ผ๋ก ์์ ๊ณต๊ฐ ์ฒ๋ฆฌ์ ๊ด๋ จํ์ฌ lerna๋ก ์ ํํ์ต๋๋ค.
ํ์ฌ Lerna๊ฐ ๋จ์ํ Yarn์ผ๋ก ์ ๋ฌ๋๋ค๋ ๊ฒ์ ํ์คํ ํ์ ํฉ๋๋ค.
Ember ํจํค์ง์ ๋ํด nohoist
๊ตฌ์ฑ์ ์ถ๊ฐํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์์์์ต๋๋ค. ํ์ฌ ํ๊ฒฝ์ ์์
๊ณต๊ฐ๊ณผ ํธํ๋์ง ์๋ ์ด์ ๋ฒ์ ์ Ember๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
"nohoist": [
"**/ember-package/*ember*",
"**/ember-package/*ember*/**",
"**/ember-package/loader.js"
]
์ง๊ธ ์ฌ๊ธฐ์ ์ต์ํ์ ์ฌํ์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค : https://github.com/yarnpkg/yarn/issues/7212#issuecomment -637978197
yarn.lock
์ ์ญ์ ํ ๋ค์ yarn install
ํ์ต๋๋ค.
์ฌ๊ธฐ์ ๋ด์ค๊ฐ ์์ต๋๊น? ์์ฌ์ ์์กด์ฑ ์ค์น ์คํจ๋ก ์ธํด ๋ชจ๋ ํ์ดํ ๋ผ์ธ์ด ์คํจํ๋ฉด์ CI ํ๋ก์ธ์ค๊ฐ ์ค๋จ๋์์ต๋๋ค. ๋ง๋ ์ ๋ผ.
--network-concurrency
ํ๋ฉด ์๋ฌด๊ฒ๋ ์์ ๋์ง ์๊ณ ์์
์ด ๊นจ๋ํ ์์คํ
์์ ์คํ๋ฉ๋๋ค (node_modules ์์, yarn .cache ์์).
@cadavre ๋ณด์ฅํ์ง๋ ์์ง๋ง v2์์๋ ๋ฌธ์ ๊ฐ๋์ง ์์ ์ ์์ต๋๋ค.
yarn set version 2 && yarn config set nodeLinker node-modules
https://yarnpkg.com/getting-started/install#per -project-install
https://yarnpkg.com/configuration/yarnrc#nodeLinker
์ด๊ฒ์ ๋ด vue ๋ฐ firebase ์ข
์์ฑ ์ค ์ผ๋ถ๋ฅผ ์
๊ทธ๋ ์ด๋ ํ ํ ๋์๊ฒ๋ ๋ฐ์ํ๊ธฐ ์์ํ์ต๋๋ค. ์ด์ ๋ด CI ๋ฐ ๊ฐ๋ฐ ์ปดํจํฐ์์ 100 % ๋ฐ๋ณต ๊ฐ๋ฅํฉ๋๋ค. --network-concurrency 1
ํด๋ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์ง ์์ต๋๋ค. ๋์คํฌ ๊ณต๊ฐ์ด๋ inode๊ฐ ๋ถ์กฑํ์ง ์์ต๋๋ค. ์ ๋ WSL1์ ์์ต๋๋ค. ์์ฌ 1.22.4.
์ผ์์ ์ผ๋ก ์บ์ ๋๋ ํ ๋ฆฌ๋ฅผ ๋ณ๊ฒฝํ์ฌ ์์ ํ์ผ๋ฉฐ ๋์ค์ ์ญ์ ํ์ต๋๋ค.
๋์๊ฒ๋ Docker ๋น๋์ ๋๋ค.
RUN yarn install --check-files --cache-folder .ycache && rm -rf .ycache
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
@bestander with
--network-concurrency 1
๋ฒ๊ทธ๋ ๋ํ๋์ง ์์ต๋๋ค (๊ทธ๊ฒ์ด ์์ผ๋ฉด ๋งค๋ฒ ๋ํ๋ฉ๋๋ค).๊ทธ๋ฌ๋์ด ๋งค๊ฐ ๋ณ์์ ๊ธฐ๋ณธ๊ฐ์ ๋ฌด์์ ๋๊น? ์ด๋ค ๊ฐ์ ์ ํํ๋ (1, 2, 4, 8) ์๋ํ์ง๋ง ์ ํ ์ ๋ ฅํ์ง ์์ผ๋ฉด ์คํจํฉ๋๋ค.