๊ธฐ๋ฅ ์ ์์ฒญํ๊ฑฐ๋ ๋ฒ๊ทธ๋ฅผ๋ณด๊ณ ํ์๊ฒ ์ต๋๊น?
๋๋ _bug_๋ฅผ ์ถ์ธกํ๋ค.
ํ์ฌ ํ๋์ ๋ฌด์์
๋๊น?
ํ์ฌ ๋์์ด ๋ฒ๊ทธ ์ธ ๊ฒฝ์ฐ ์ฌํ ๋จ๊ณ๋ฅผ ์ ๊ณตํ์ญ์์ค.
๋ค์๊ณผ ๊ฐ์ ํ๋ก์ ํธ ๊ตฌ์กฐ๊ฐ ์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.
component-foo/
โโโ package.json
โโโ index.js
yarn-test/
โโโ package.json
๋ค์ ํ์ผ๋ก :
component-foo/package.json
:
{
"name": "component-foo",
"version": "1.0.0",
"private": true,
"main": "index.js"
}
component-foo/index.js
:
console.log('foo');
yarn-test/package.json
:
{
"name": "yarn-test",
"version": "1.0.0",
"private": true,
"dependencies": {
"component-foo": "file:../component-foo"
}
}
์ด์ $ yarn install
๋ด์์ yarn-test/
ํ๊ณ yarn-test/node_modules/component-foo/index.js
๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
console.log('foo');
์ด์ yarn-test/node_modules/
๋ฐ yarn-test/yarn.lock
ํ๊ณ component-foo/index.js
๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ๋ณ๊ฒฝํฉ๋๋ค.
console.log('bar');
์ด์ $ yarn install
๋ด๋ถ์์ yarn-test/
๋ค์ ์คํํ๋ฉด yarn-test/node_modules/component-foo/index.js
๊ฐ๋ฉ๋๋ค.
console.log('foo');
component-foo
์ ์บ์ ๋ ๋ฒ์ ์ ์ฌ์ฉํ์ง๋ง component-foo/index.js
๊ฐ ๋ณ๊ฒฝ๋์์ต๋๋ค.
์์๋๋ ๋์์ ๋ฌด์์ ๋๊น?
๋ง์ง๋ง์ yarn-test/node_modules/component-foo/index.js
๋์ด์ผํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
console.log('bar');
file:../
์ ๊ฐ์ ๋ก์ปฌ ๊ฒฝ๋ก๋ก ์ค์น๋ ํจํค์ง๊ฐ ๋ณ๊ฒฝ๋์๋์ง ์ ์ ์๋ค๋ฉด ์ ํ ์บ์๋์ง ์์์ผํฉ๋๋ค.
(์ฐธ๊ณ : npm์ด ์บ์ํ์ง ์๋ ๊ฒ ๊ฐ์ต๋๋ค.)
node.js, yarn ๋ฐ ์ด์ ์ฒด์ ๋ฒ์ ์ ์ธ๊ธํ์ญ์์ค.
$ node -v
v6.9.1
$ yarn -V
0.18.0
macOS 10.12.1
์ด๊ฒ๋ ์ ๋ฅผ ์์์ต๋๋ค. ๋ชจ๋ ์บ์๋ฅผ ์ง์ฐ์ง ์๊ณ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์์๋ ๋ฐฉ๋ฒ์ด ์์ด์ผํฉ๋๋ค.
์ด ๊ฒฝ์ฐ์ ์ค์ ์ฌ์ฉํ ์์๊ฒ ๋ง๋๋ ์ธ ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
file://<path>@<cache_timestamp>
yarn cache rm <package>
๋ฐ yarn cache add <package>
๊ฐ์ ๋ช
๋ น์ ์ฌ์ฉํ์ฌ ํจํค์ง ์ด๋ฆ๋ณ๋ก ํจํค์ง๋ฅผ ๋ฌด์ํฉ๋๋ค. ๋ชจ๋ ์ข
์์ฑ.๊ตฌํํ ๋ ๋ฒ์งธ ์ ์์๋ณด๊ณ ์ถ์ต๋๋ค. ์ธ ๋ฒ์งธ ์ต์
์ ๋ค๋ฅธ ๊ฒฝ์ฐ์๋ ์ ์ฉ ํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด yarn cache add <package>
๋ ์ข
์์ฑ์ ๋ค์ด๋ก๋ํ๋ ๋์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์์๋ ๊ฒฝ์ฐ ์ด๋ฏธ ์บ์ ๋ ์ข
์์ฑ์ ๋ํ ์บ์๋ฅผ ์๋ก ๊ณ ์น๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค.
@hantuzun ์ ๋ก์ปฌ ์ข ์์ฑ์ ์บ์ํฉ๋๊น? ์ด์จ๋ ๋ก์ปฌ์ด๋ฏ๋ก ์บ์ ์ฌ๋ถ์ ๊ด๊ณ์์ด ๋น ๋ฆ ๋๋ค.
@ satya164 ๋น์ ์ด ๋ง์์. ๊ทธ๋ฌ๋ ๋คํธ์ํฌ์ ์ข ์์ฑ์ด ์๋์ ์ผ๋ก ์์ ๋๋ฉด ์ธ ๋ฒ์งธ ์ ๊ทผ ๋ฐฉ์์ด ๋์์ด ๋ ๊ฒ์ ๋๋ค.
yarn cache ignore <package>
์ ๊ฐ์ ๊ฒ์ด ์ ์ฉ ํ ๊ฒ์
๋๋ค. ํ์ง๋ง ์๋ก ๋ฐฐํ์ ์ผ ํ์๋ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ํจํค์ง๋ฅผ ๋ฌด์ํ๋ ๊ฒ์ ์ ์ฉํ์ง๋ง ์๋ ์์
์ด ํ์ํฉ๋๋ค. ํ์ผ ์ข
์์ฑ์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฌด์๋๋ ๊ฒฝ์ฐ ์ถ๊ฐ ๋
ธ๋ ฅ์์ด ์๋ํ๋๋ก ๋ง๋ค ์ ์์ต๋๋ค.
๋๊ตฐ๊ฐ ๋์๊ฒ ๋ด๋ถ ๋ ผ๋ฆฌ๋ฅผ ์ค๋ช ํ ์ ์์ต๋๊น?
๋ด ์ดํด :
file:
๊ฐ์๋ ์ข
์์ฑ์ด ๋ฐ์ํ๋ฉด file-resolver.js
์์๋ฉ๋๋ค. ์ข
์์ฑ์ด ๋ณต์ฌ ๋์ด์ผํ๋ฉฐ ํด์ ๋์ง ์๋๋ค๊ณ ๋งํฉ๋๋ค. ํด์๊ฐ ์๋ค๋ ๊ฒ์ ์ด๋ฏธ ์บ์๋์ง ์์์ผ ํจ์ ์๋ฏธํ์ง ์์ต๋๊น? ๊ทธ๋ฌ๋ copy-fetcher.js
๋ null
๋ฅผ ์ ์งํ๋ ๋์ ํด์๋ฅผ ๋น ๋ฌธ์์ด๋ก ์ค์ ํ๋ ๊ฒ ๊ฐ์ต๋๋ค ...์ด ๋ฌธ์ ๊ฐ ์์ต๋๊น?
@bestander ๋๋ @kittens ์๋ง๋ ๋น์ ์ ์ด๊ฒ์ ์กฐ๊ธ ๋ ์ค๋ช ํ ์์์ ๊ฒ์ ๋๋ค ...? PR์ ๋ง๋๋ ๋ฐ ์ฝ๊ฐ์ ๋์์ ๋ฐ๊ณ ์ถ์ด์ โฅ
Hash๋ ์๋ฅผ ๋ค์ด tarball-fetcher์ ์ฌ์ฉ๋๋ md5 ํด์๋ฅผ ์๋ฏธํฉ๋๋ค.
์ด ํด์๋ ํฅํ ํ์ธ์ ์ํด yarn.lock ํ์ผ์ ์ถ๊ฐ๋๋ฉฐ ์์ถ์ด ํ๋ฆฐ ํด๋๋ฅผ ์บ์์ ์ ์ฅํ ๋ ํด๋ ์ด๋ฆ์๋ ์ถ๊ฐ๋ฉ๋๋ค.
๋น์ ์ ์ฌ๋ฐ๋ฅธ ๋ฐฉํฅ์ผ๋ก ํ๊ณ ์์ต๋๋ค. ์ด๊ฒ์ ์กฐ์ฌํด ์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค. PR์ ๋๋จํ ํ์ํฉ๋๋ค.
๊นจ์ง ๋จ์ ํ
์คํธ๋ฅผ ์ถ๊ฐํ๋ PR๋ก ์์ํ ์ ์์ต๋๋ค.
๊นจ์ง ๋จ์ ํ ์คํธ๋ฅผ ์ถ๊ฐํ๋ PR๋ก ์์ํ ์ ์์ต๋๋ค.
์๊ฒ ์ต๋๋ค. ์๋ต ํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. PR์ ๋ฆฌ๋ทฐ์ด๋ก์ ๋น์ ์ ํํด์ผํฉ๋๊น, ์๋๋ฉด ๋ค๋ฅธ ์ฌ๋ (๋๋ ์๋ฌด๋) ํํ์ง ์์์ผํฉ๋๊น ...?
๊ทธ๋, ํ
@bestander ์๋ง๋์ด ๋ฌธ์ ๋ ์์ง ํด๊ฒฐ๋์ง ์์
์, ๋ค์ ์ด์ด์ผํฉ๋๋ค. ๋ด PR ์ ๋ชฉ์ "์์ # 2165"๋ฅผ ์ผ๊ธฐ ๋๋ฌธ์ ์ข ๋ฃ๋์์ต๋๋ค. ์ฒ์์๋ ์งํ์ค์ธ PR์ด๋ผ๊ณ ์๊ฐํ์ง๋ง์ด ๋ฒ๊ทธ๋ฅผ ์์ ํ๋ ค๋ฉด ๋ ๊ฐ์ PR์ด ํ์ํฉ๋๋ค. ์ฒซ ๋ฒ์งธ PR์ ๋จ์ โโํ ์คํธ๋ฅผ ์ถ๊ฐํ์ต๋๋ค (์คํจ ํ ์ฃผ์ฅ์ ์ค์ ๋ก ํ์ฑํ๋์ง ์์ผ๋ฏ๋ก CI๊ฐ ํญ๋ฐํ์ง ์์). ๋ ๋ฒ์งธ๋ ์ค์ ๋ก ๊ทธ๊ฒ์ ๊ณ ์น ๊ฒ์ ๋๋ค.
์ฃ์กํฉ๋๋ค. PR์ด ๋ณํฉ๋๋ฉด github๊ฐ ๋ฌธ์ ๋ฅผ ๋ซ์ต๋๋ค.
๊ทธ๋์ ๋ถ๋ช
ํ ์ด๊ฒ์ ์ฌ์ ํ โโ๋ฌธ์ ์
๋๊น? ์์งํ ๋งํด์ ํจ๊ป ๊ฐ๋ฐํ๋ ๊ฒ์ ์๋นํ ์ฑ๊ฐ์ ์ผ์
๋๋ค. ๊ทธ๊ฒ์ ๋ชจ๋ ์ ๊ฐ๋ฐ ํ๊ฒฝ์ ๋ง๋ค๊ธฐ ์ํด file:
๋ฅผ ์ฌ์ฉํ๊ณ ์๋ ์ง์ฅ์์ ๊ฐ์ธ์ ์ธ ์์ค์์ ์ ์๊ฒ ์ฝ๊ฐ์ ํผ๋์ ์ผ๊ธฐํ๊ณ ์์ต๋๋ค. ์ง์ฆ๋๋ ๋ถ๋ถ์ ๋ชจ๋ ๋ก์ปฌ ํจํค์ง ๋ด๊ฐ ํธ์งํฉ๋๋ค (์ฌ์ฉํ๋ค๋ ์ ์ด๋ค file:
์์ ๊ฒฝ๋ก package.json
) ์๋ก ๊ณ ์น ๋ด์ฉ์ ํ๋ค์ดํ๊ธฐ ์ํด,์ด ์ผ์ด ํ์ํฉ๋๋ค :
๋ด eslint-config-base-eslint ํจํค์ง์ ๋ด์ฉ ํธ์ง
yarn cache clean && rm -rf node_modules/eslint-config-base-eslint && yarn install --force && yarn lint
๋๊ตฌ๋ ํ๋ก์ ํธ์ ๊ธฐ์ฌํ ์ ์์ต๋๋ค.
์ด ์ผ์ด์ค์ ๋ํด ๊นจ์ง ํตํฉ ํ
์คํธ๋ฅผ ์ ์ถํ๊ฑฐ๋ ์์ ์ํ๊ฑฐ๋ ๋๊ตฐ๊ฐ๊ฐ ์์ ์์
์ํ๋๋ก ์ค๋ํ๋ ๊ฒ์ ๋ฌด์์ด๋ ๋ ์ ์์ต๋๋ค.
์ด์ ์ ๊ทผํ๋ ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์ถ๋ค๋ฉด discord ์ฑ๋์์ ๋์์ ์ฐพ์ ์ ์์ต๋๋ค.
์ค์ ๋ก ์์ ์ 10-15 ์ค์ ์ฝ๋ ์ฌ์ผํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์๋ง๋ ์์ ํ๋ ๋ฐ ๋ง์ ์๊ฐ์ ๋ ๋นจ๋ฆฌ ์ ์ฝ ํ ์์์ ๊ฒ์ ๋๋ค.
์ฐธ๊ณ :์ด ๋ฌธ์ ๋ ๋๋ฆฐ linking dependencies
๋จ๊ณ์๋ ๊ด๋ จ์ด์์ ์ ์์ต๋๋ค. ์ฌ๊ธฐ ๋ด ์๊ฒฌ์ ์ฐธ์กฐํ์ญ์์ค : https://github.com/yarnpkg/yarn/issues/1496#issuecomment -282688818.
์ฃ์กํฉ๋๋ค. ์ด ๋ฌธ์ ์ ๋ํด ๋ ๋ค๋ฅธ PR์ ๋ง๋ค ์๊ฐ์ ์ฐพ์ ์ ์์์ต๋๋ค. (์์ง๋ ๋งค์ฐ ๋ฐ๋นด์ต๋๋ค.
@bestander ์ด๊ฒ์ ๋ค์ค ๋ชจ๋ ํ๋ก์ ํธ์์ ์์
ํ๋ ์ ์๊ฒ ๊ฝค ํฐ ์ฐจ๋จ๊ธฐ์
๋๋ค. @donaldpipowitch ์ ์ฝ๋ ๋งํฌ์ ์ฃผ์์ ์ฌ๋ฐ๋ฅด๊ฒ ์ฝ๊ณ ์๋ค๋ฉด ํ์ผ ํด๊ฒฐ ํ๋ก๊ทธ๋จ์ด ํด๊ฒฐํ๋ ค๊ณ ํ ๋๋ง๋ค ์ hash
(null ๋์ )๋ฅผ ๋ง๋ค์ด ๊ฐ์ ๋ก ์ฌ์ค์นํ๋๋ก ํ ์ ์์ต๋๊น? UUID ๋๋ ํ์ฌ ํ์ ์คํฌํ๋ฅผ ๋ง ํ์๊ฒ ์ต๋๊น? ๋ญ๊ฐ ๋น ์ง ๊ฒ์ด ์์ผ๋ฉด ์ฉ์ํด์ฃผ์ธ์. ์ฝ๋๊ฐ ์๋ํ๋ ๋ฐฉ์์ ์ต์ํ์ง ์์ต๋๋ค.
ํ์ ์คํฌํ์ uuid๊ฐ์๋ ์ ์บ์๋ ํฉ๋ฆฌ์ ์ธ ํดํน์ฒ๋ผ ๋ค๋ฆฝ๋๋ค.
์ด์์ ์ผ๋ก๋ ์บ์์์ด ์ง์ ํ์ผ์ ๋ณต์ฌํด์ผํ์ง๋ง
๋ ๋ณต์กํ ๋ณํ.
PR ๋ณด๋ด๊ธฐ
2017 ๋ 3 ์ 7 ์ผ ํ์์ผ 03:38์ Matt Traynham [email protected] ์ ๋ค์๊ณผ ๊ฐ์ด ์ผ์ต๋๋ค.
@bestander https://github.com/bestander ์ด๊ฒ์ ๊ฝค ํฐ ์ฐจ๋จ๊ธฐ์ ๋๋ค
๋๋ฅผ ์ํด ๋ค์ค ๋ชจ๋ ํ๋ก์ ํธ์์ ์ผํ๊ณ ์์ต๋๋ค. @donaldpipowitch๋ฅผ ์ฝ๊ณ ์๋ค๋ฉด
https://github.com/donaldpipowitch ์ ์ฝ๋ ๋งํฌ ๋ฐ ๋๊ธ
์ฌ๋ฐ๋ฅด๊ฒ, ํ์ผ ๋ฆฌ์กธ๋ฒ๊ฐ ์ ํด์๋ฅผ ์์ฑํ๋๋ก ํ ์ ์์ต๋๊น?
null) ํด๊ฒฐํ๋ ค๊ณ ํ ๋๋ง๋ค ๊ฐ์ ๋ก ๋ค์ ์ค์นํฉ๋๊น? UUID ๋งํ๊ธฐ
๋๋ ํ์ฌ ํ์ ์คํฌํ? ๋น ์ง ๊ฒ ์์ผ๋ฉด ์ฉ์ ํด์ค ๋ฏ์ค์ด
์ฝ๋๊ฐ ์๋ํ๋ ๋ฐฉ์์ผ๋ก.โ
๋น์ ์ด ์ธ๊ธ ๋์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๊ณ ์์ต๋๋ค.์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธํ์ธ์.
https://github.com/yarnpkg/yarn/issues/2165#issuecomment-284612526 ๋๋ ์์๊ฑฐ
์ค
https://github.com/notifications/unsubscribe-auth/ACBdWDS3xSr8KNu1o9Zn8sA9xdO8pyHOks5rjNEmgaJpZM4LFbmf
.
@bestander ๊ทํ์ ๋ง์ง๋ง ์ฝ๋ฉํธ์ ๊ดํ์ฌ : ํ์ผ์ ๋ณต์ฌํ๋ ๋์ ์ฌ๋ณผ๋ฆญ ๋งํฌํ๋ ๊ฒ์ด ๋ ํฉ๋ฆฌ์ ์ด์ง ์์ต๋๊น? ์๋๋ฉด ๊ทธ๋ ๊ฒํ์ง ์์ ์ด์ ๊ฐ ์์ต๋๊น?
@danrot ์ฐฝ์ ๊ด๋ฆฌ์๊ฐ ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ์๊ตฌํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋ํ ๋
ธ๋ ๋ชจ๋์ ์ฐพ๊ธฐ ์ํด ์ฌ๊ท๋ฅผ ์๋ง์ผ๋ก ๋ง๋ญ๋๋ค.
Symlink๋ ๋ํ .npmignore
๋ฑ์ ๋ฌด์ํฉ๋๋ค. (ํ์ฌ ๋ฌด์๋๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ฌธ์ ๊ฐ ๋ ์ ์์ต๋๋ค : https://github.com/yarnpkg/yarn/issues/1496#issuecomment-282688818)
ํ์ฌ ์ ์ฒด ์บ์๋ฅผ ์ง์ฐ๋ ๊ฒ์ ๊ธ์งํ๋ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ์์ต๋๊น? ๋ถํํ๋ yarn cache rm package
์ข
๋ฅ์ ๋ช
๋ น์ด์๋ ๊ฒ ๊ฐ์ต๋๋ค.
@ rhys-e์ด ์์ ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
#!/bin/sh
if [ $# != 1 ]
then
echo Usage $0 package-name
exit 1
else
echo Reinstalling $1
fi
dir="node_modules/$1"
if [ -d $dir ]
then
rm -fr $dir
fi
cache=`yarn cache dir`/npm-${1}*
# echo $cache
rm -fr $cache && yarn install --force
๋๊ตฌ๋ ๊ฒ์ ์๋ํ๋ค yarn link
๋ชจ๋ ๋ก์ปฌ ์ข
์์ฑ์ postinstall
? ์ ์ ํ ํด๊ฒฐ์ฑ
์ด ๋์ฌ ๋๊น์ง ์ ์ ํ ํด๊ฒฐ์ฑ
์ฒ๋ผ ๋ณด์
๋๋ค.
์์ด๋์ด๋ ๋ก์ปฌ ์ข ์์ฑ์ ๋ํ ๋ชจ๋ ๋ณ๊ฒฝ ์ฌํญ์ ๋ํด ํจํค์ง์ ๋ฒ์ ๋ฒํธ๋ฅผ ์ ๋ฐ์ดํธ ํ ํ์๊ฐ ์๋ค๋ ๊ฒ์ ๋๋ค. ์์ฌ ๋งํฌ๋ ๊ทธ๋ ๊ฒํ๋๋ก ๊ฐ์ ํ ๊ฒ์ ๋๋ค. (์๋ํ์ง ์์๋ค)
๋ด ์ชฝ์์ ๋ง์ง๋ง์ผ๋ก ํ ์ผ์ ๋ก์ปฌ ์ข ์์ฑ์ ๋ํด ์์ค ํด๋์ node_modules ํด๋์์๋ ๋ด์ฉ์ ๋น๊ตํ๋ ์ฌ์ ์ค์น ๋จ๊ณ์์ ์คํฌ๋ฆฝํธ๋ฅผ ํธ์ถํ๋ ๊ฒ์ ๋๋ค. ์ฐจ์ด์ ์ด ๋ฐ๊ฒฌ๋๋ฉด ์บ์ ๋ ์ข ์์ฑ์ ์ ๊ฑฐํ๊ณ ๋ฌด๊ฒฐ์ฑ ํ์ผ์ ์ ๊ฑฐํฉ๋๋ค (๊ฐ์ ์ฌ์ค์น๋ฅผ ์ํด). ๋ฐ๋ผ์ ๋ณ๊ฒฝ ์ฌํญ์ด ์์ผ๋ฉด ์์ฌ ์ค์น๊ฐ ๋งค์ฐ ๋น ๋ฅด๋ฉฐ (๋ก์ปฌ ์ข ์์ฑ์ด ๋ง์ง ์์) ์ค๋๋ ์บ์ ๋ฒ์ ์ด ์์ผ๋ฉด ์ฌ์ฉ๋์ง ์์ต๋๋ค.
@lucdew ๋งํฌ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ด๋ถ์ ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ์์ฑํ๋ฏ๋ก ์ต์ ๋ก์ปฌ ๋ฒ์ ์ด ์ฌ์ฉ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ์คํฌ๋ฆฝํธ๊ฐ ์์ผ๋ฉด ์ค์นํ๊ธฐ ์ ์ ํน์ deps์ ์บ์๋ฅผ ์ ๋ฆฌํ๋ ๊ฒ์ด ์ฌ๋ฐ๋ฅธ ํด๊ฒฐ์ฑ ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
./node_modules/ ์๋์ ์์ ํ๋ก์ ํธ์ ์ค์น๋ ๋ฒ์ ์์ ์
๋ฐ์ดํธ๋์ง ์๋ ๋ก์ปฌ ํจํค์ง์ ๋ณ๊ฒฝ ์ฌํญ์ ํด๊ฒฐํ๊ธฐ ์ํด ๋ค์ํ ์กฐํฉ์ ํ
์คํธํ์ต๋๋ค. ./node_modules/๋ฅผ ์ญ์ ํ ํ์์์ด ์ด๋ ๊ฒํ๋ฉด๋ฉ๋๋ค.
yarn cache clean; yarn upgrade file:../<package>
๋งํ ํ์๋์์ด ๋ก์ปฌ ํจํค์ง๋ฅผ ์ ๋ฐ์ดํธ / ์ ๊ทธ๋ ์ด๋ํ๊ธฐ ์ํด ์๋์ผ๋ก ์ ์ญ ์บ์ ์ ๋ฆฌ๋ฅผ ๊ฐ์ ํ ํ์๋ ์์ต๋๋ค.
@fungilation ํด๊ฒฐ ๋ฐฉ๋ฒ์ผ๋ก npm์ ์ฌ์ฉํ์ฌ ๋ก์ปฌ ์ข ์์ฑ์ ์ค์นํ๊ณ ์ ๋ฐ์ดํธ๋ฅผ ์ํ ๋๋ง๋ค ์ ์ฒด ์บ์๋ฅผ ์์ง ์๋๋ก ํ ์๋ ์์ต๋๋ค.
# 2860 ๋ฐ ํ์ ๋ณํฉ ์ปค๋ฐ https://github.com/yarnpkg/yarn/commit/7241de13bb236526fa439a2528fbed319f60ef24์ ๋ฐ๋ผ ์ด์ file:
ํ๋กํ ์ฝ ์ข
์์ฑ์ "์๋ก ๊ณ ์นจ"ํ ์ ์์ต๋๋ค.
yarn install --force
ํน์ ํจํค์ง๋ฅผ ํธ์ง ํ๊ฑฐ๋ ์ ๊ทธ๋ ์ด๋ํฉ๋๋ค (์ด๊ฒ๋ ์ ์๋ํ๋์ง ๋ชฐ๋์ต๋๋ค). ์ข ์์ฑ ๋ฒ์ ์ด ๋ณ๊ฒฝ๋์ง ์์ ๊ฒฝ์ฐ ์ ๊ธ ํ์ผ์ ์์ ๋์ง ์์ง๋ง ์ต์ ๋ฒ์ ์ ๊ณ์ ๋ณต์ฌํฉ๋๋ค.
yarn upgrade [file protocol package name]
PR ๋ณ๊ฒฝ์ ์บ์์ ์ข
์์ฑ์ ๋ฌดํจํํ๊ณ ๋ก์ปฌ๋ก ๋ค์ ์ค์นํฉ๋๋ค. yarn install
๋ ์ข
์์ฑ ๋ฒ์ ์ด ๋ณ๊ฒฝ๋ ๊ฒฝ์ฐ์๋ ์๋ํ์ฌ yarn.lock ํ์ผ์ด ๋ฌดํจํ๋ฉ๋๋ค. ๋ ์ด์ ์บ์๋ฅผ ์ง์ฐ๊ฑฐ๋ ๋ก์ปฌ ์ค์น์์ ๋ชจ๋์ ์ญ์ ํ ํ์๊ฐ ์์ต๋๋ค.
๋ํ link:
ํ๋กํ ์ฝ์ ์ฌ์ฉํ์ฌ ์ข
์์ฑ์ ์ฐ๊ฒฐํ๊ธฐ์ํ ํ์ฑ RFC๊ฐ ์์์ด ๋ถ๋ช
ํด์ก์ต๋๋ค. https://github.com/yarnpkg/rfcs/pull/34์์ ๋ฐ๋ฅผ ์ ์์ต๋๋ค
@mtraynham ํ ๋ฆฌํ์คํธ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค! ๐ ์ด๊ฒ์ ๊ต์ฅํฉ๋๋ค. --force
์ด ํ์ํ ์ด์ ๋ ๋ฌด์์
๋๊น? ๋๋ ํ์ฌ ๊ทธ๊ฒ์ ์ฐพ์ง ์๊ณ ์ ํํ ๋ฌด์์ํ๋์ง์กฐ์ฐจ ๋ชจ๋ฆ
๋๋ค. :) npm์ --force
ํ๋๊ทธ๊ฐ ํ์ํ์ง ์๊ธฐ ๋๋ฌธ์ npm์ฒ๋ผ ํ๋ํ๋ ๊ฒ์ด ์ข์์ ๊ฒ์
๋๋ค.
๊ฐ์ ํธ์ง ์ธ๋ชจ yarn upgrade [dependency]
์๋๋ผ ์ํ. ์ง์ ํ๊ณ ์ถ์ต๋๋ค. ์ด๊ฒ์ด ํญ์ lockfile์ ๋ณ๊ฒฝํ๋ ๊ฒ์ ์๋๋ฉฐ package.json ๋ฒ์ ๋ณ๊ฒฝ ๋ง ๋ฐ์ํด์ผํฉ๋๋ค. ์
๊ทธ๋ ์ด๋๊ฐ ๋ ์ ์ ํ ์ ์์ผ๋ฏ๋ก ์๋ ๊ฒ์๋ฌผ์ ์
๋ฐ์ดํธํ์ต๋๋ค.
์งง์ ๋ฒ์ ์ Yarn์ด ์ ๊ธ ํ์ผ์ด ๋ณ๊ฒฝ๋์ง ์์ ๊ฒฝ์ฐ ์บ์ ๋ฆฌ์กธ๋ฒ๋ก ์๋ฌด๊ฒ๋ ์ํํ์ง ์์ผ๋ฏ๋ก ์ ๊ธ ํ์ผ ๊ฒ์ฌ๋ฅผ ๊ฑด๋ ๋ฐ๊ณ ์บ์์ ์ ๋ฒ์ ์ด ์๋์ง ๋ฌผ์ด๋ด์ผํฉ๋๋ค. upgrade
๋๋ install --force
์ฌ์ฉํ์ฌ ์ํ ํ ์ ์์ต๋๋ค.
yarn install --force
๋ฌธ์ ๋น
"์ด์ ์ ์ค์น๋ ํจํค์ง๋ฅผ ํฌํจํ์ฌ ๋ชจ๋ ํจํค์ง๋ฅผ ๋ค์ ๊ฐ์ ธ์ต๋๋ค."
์ด๊ฒ์ ์ค์ ๋ก ์ ๊ธ ํ์ผ ๋ฌด๊ฒฐ์ฑ ๊ฒ์ฌ๋ฅผ ๊ฑด๋ ๋ฐ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. lockfile ๋ฌด๊ฒฐ์ฑ ๊ฒ์ฌ๋ ์ผ๋ฐ์ ์ผ๋ก package.json ํ์ผ์ ๋ณ๊ฒฝํ์ง ์๊ณ ์ ์์ ์ผ๋ก ๋ณต๊ตฌํ๋ฉด ํต๊ณผ๋ฉ๋๋ค. ์ด๋ฅผ ๊ฑด๋ ๋ฐ๋ฉด ์บ์๊ฐ ์ ๊ธ ํ์ผ์ ๋ํด ๋๋ฝ / ๋ถ์ผ์น ์ข
์์ฑ์ ํ์ธํ๊ณ ๋๋ฝ ๋ ๊ฒฝ์ฐ ๋ค์ด๋ก๋ํ๊ณ ์๋กญ๊ฑฐ๋ ๋๋ฝ ๋ ์ข
์์ฑ์ ๋ก์ปฌ๋ก ๋ค์ ๋ณต์ฌํ๋๋ก ์์ฒญํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ npm install
/ postInstall
์คํฌ๋ฆฝํธ๋ฅผ ์คํํฉ๋๋ค.
PR ๋ณ๊ฒฝ์ ์ด์ ์บ์์์ file:
์ข
์์ฑ์ ๋ฌดํจํํ๊ณ ์ ๋ฒ์ ์ ๋ก์ปฌ๋ก ๋ณต์ฌํฉ๋๋ค. ์ด์ ์๋ file:
์ข
์์ฑ์ ๋ฌดํจํํ์ง ์์์ต๋๋ค. ๋ค๋ฅธ ํ๋กํ ์ฝ์ ๊ฒฝ์ฐ package.json ํ์ผ์ ๋ณ๊ฒฝํ์ง ์์ ๊ฒฝ์ฐ ๋ณ๊ฒฝ๋์ง ์์ ์ํ๋ก ์ด๋ํฉ๋๋ค (์บ์ ๋ฐ ๋ก์ปฌ).
์ด๊ฒ์ด ์ฐ๋ฆฌ์๊ฒ ๋ฌด์์ ์๋ฏธํฉ๋๊น? ํ๋์ file:
์ข
์์ฑ๊ณผ ํจ๊ป ํ๋ก์ ํธ (Angular์์ Webpack๊น์ง ๋ฒ์)์ ๋ํด ์ฝ 60 ๊ฐ์ ์ข
์์ฑ์ด ์์ต๋๋ค. ๋ก์ปฌ ์ข
์์ฑ ๋ง ์๋ก ๊ณ ์น๊ณ ์ถ์ ๋ ๋ฒ์งธ install --force
์์๋ ์ฝ 5 ์ด๊ฐ ๊ฑธ๋ฆฝ๋๋ค ( yarn install
~ 1.5 ์ด์์ ์ฆ๊ฐ). ๋์๊ฒ ์ด๊ฒ์ ๋งค์ฐ ๋ฌด์ํ ๋งํ ๋ฉฐ ์ค์ ๋ก ์ ์ฒด ํ๋ก์ธ์ค์์ ์์
์ค์ด ์ผ๋ง๋ ์ ์ ์์
์ ์ํํ๋์ง์ ๋ํด ๋งค์ฐ ์ธ์์ ์
๋๋ค.
์ ๊ธ ํ์ผ ๊ฒ์ฌ๋ฅผ ๊ฑด๋ ๋ฐ๊ณ ํน์ ํ์ผ ์ข
์์ฑ์ ๋ํด์๋ง ์บ์๋ฅผ ๊ฒ์ฌํ๋ ๋ ๋ค๋ฅธ CLI ๋ช
๋ น์ด์๋ ๊ฒฝ์ฐ ๋ ๋น ๋ฅผ ์ ์์ง๋ง ์์ง ์ฐพ์ง ๋ชปํ์ต๋๋ค.
๋งํ ๋ชจ๋ ๊ฒ, ๋๋ ์ด๊ฒ์ ๋ฐ์ฐฝ๊ณ ๋ผ๊ณ ๋ถ๋ฅผ ๊ฒ์
๋๋ค. ์ด๊ฒ์ link:
์ ๊ฐ์ ๋ ๋์ ์๋ฃจ์
์ผ๋ก ๋์ฒด ๋ ์ ์์ต๋๋ค. ๋๋ ์๋ฌด๋ ์ ๋ง๋ก ๋ก์ปฌ ์์กด์ฑ์ ์บ์ํ๋ ๋ฐ ๊ด์ฌ์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ต์ํ install --force
๋๋ upgrade
์ฌ์ฉ์ ๋ฐ๋ฅธ ์ถ๊ฐ ์ค๋ฒ ํค๋๋ ๋๋ถ๋ถ ๋ถ์ฃผ์ํ๋ฉฐ ๋ ์ด์ yarn cache clean; mv node_modules /tmp/
.
์ข์ ๋๋ต์ ๋๋ค. ๐ ์ ์ด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.
yarn์ด ๋ก์ปฌ ์ฌ๋ณผ๋ฆญ ๋งํฌ ํ๋ก์ ํธ ํ์ผ์ yarn ์บ์์ ํ์ผ๋ก ๋ฎ์ด ์ฐ๋์? (๊ทธ๊ฒ ์ผ์ด๋๊ณ ์๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๊ธฐ ๋๋ฌธ์)
PR ๋ณ๊ฒฝ์ ์ด์ ํ์ผ : ์บ์์ ์ข ์์ฑ์ ๋ฌดํจํํ๊ณ ์ ๋ฒ์ ์ ๋ก์ปฌ๋ก ๋ณต์ฌํฉ๋๋ค.
๋ด๊ฐ ์ ํ ํ ๋๋ง๋ค ๊ทธ์ด ์๋ฏธํฉ๋๊น $ yarn
๊ฐ์ง๊ณ ํจํค์ง ๋ด๋ถ์ "foo": "file:../"
์ ์ข
์์ฑ๊ณผ ๊ฐ์ ์ ๋ณต์ฌ๋ณธ "file:../"
๋ง๋ค์ด์ง๋๋ค?
์๋ฅผ ๋ค์ด ํจํค์ง์ด๊ธฐ๋ ํ ์ฌ๋ฌ ์์ ๊ฐ์๋ ํจํค์ง๊ฐ ์์ต๋๋ค.
foo/
foo/examples/
foo/examples/example-1/
foo/examples/example-2/
foo/examples/example-3/
...
foo/examples/example-10/
๊ทธ๋ฆฌ๊ณ ์ง๊ธ์ foo
๊ฐ ์ค ์บ์์ 10 ๋ฒ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ํ foo
์ ๋ชจ๋ ๋ฒ์ ๋ณ๊ฒฝ์ ๋ํด ์์ ๋ฅผ ํ
์คํธํฉ๋๋ค (๊ทธ๋ฆฌ๊ณ foo
๋ฟ๋ง ์๋๋ผ ์ด๋ฌํ ๋ฐฉ์์ผ๋ก ๊ตฌ์ฑ๋ ์ฌ๋ฌ ๋ชจ๋์ด ์์). ๊ทธ๋์ ํ์ฌ ๋ด ์์ฌ ์บ์๊ฐ _really_ ๋น ๋ฅด๊ฒ ์ปค์ง๋ ๊ฒ์ฒ๋ผ ๋ณด์
๋๋ค.
์ด๊ฒ์ด ์ฌ๋ฐ๋ฅธ ํ๋์ ๋๊น?
์บ์์ ์ค๋๋ ๋ฒ์ ์ ์ฌ์ฉํ๋ ๊ฒ๋ณด๋ค ๋ ๋์ ๋์์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
yarn 0.26์ ์ฌ์ฉํ๋ฉด link:
๋ฅผ ์ฌ์ฉํ์ฌ ํ์ผ์ ๋ณต์ฌํ๋ ๋์ ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
๋ํ ์ฌ๋ณผ๋ฆญ ๋งํฌ ์์ฑ์ ์๋ํ ํ ์์
๊ณต๊ฐ ( https://github.com/yarnpkg/yarn/issues/3294) ์ ์์
ํ๊ณ
์, ์์ ์๋๋ฅผ ๊ธฐ๋ํฉ๋๋ค ๐
link:
์ ์์ง npm์์ ์๋ํ์ง ์์ต๋๊น? (https://github.com/npm/npm/pull/15900์ด ์์ง ์ด๋ ค ์๊ธฐ ๋๋ฌธ์
๋๋ค.)
npm 5 patchnote ์์ ํ์ผ์ ์ด์ file:
๊ตฌ๋ฌธ์ผ๋ก ์๋์ผ๋ก ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ฉ๋๋ค.
npm install ./packages/subdir์ ์ด์ ์ผ๋ฐ ์ค์น ๋์ ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ์์ฑํฉ๋๋ค. file : //path/to/tarball.tgz ๋ ๋ณ๊ฒฝ๋์ง ์์ผ๋ฉฐ ๋๋ ํ ๋ฆฌ ๋ง ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ฉ๋๋ค. (# 15900)
๋ค, npm์๋ link
๊ฐ ์์ต๋๋ค.
npm install ./packages/subdir์ ์ด์ ์ผ๋ฐ ์ค์น ๋์ ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ์์ฑํฉ๋๋ค.
์ ๊ฐ์
๋๋ค. ๋ชจ๋ ๊ฒ์ ๋ณต์ฌ ( node_modules
)ํ๊ณ .npmignore
๋๋ files
ํ๋๋ฅผ ์กด์คํ์ง ์๊ธฐ ๋๋ฌธ์ ํ์ผ deps๊ฐ ๋์ผํ๊ฒ ์๋ํ์ง ์์์ต๋๋ค. ์ด์ ์ฌ๋ณผ๋ฆญ ๋งํฌ๊ฐ ๋ ๋๋น ์ก์ต๋๋ค.
๋๋ file : and link : ๋ ๊ฐ์ ๋ ์ ์๋ค๊ณ ์๊ฐํ๋ค. ๊ทธ๋ค ์์ ์ ์ฅ๋จ์ ์ ๊ฐ์ง ๋ค๋ฅธ ์ ๋ต์ด ์๊ณ Yarn์ ์ฌ๋๋ค์ด ํ๋๋ฅผ ์ ํํ ์ ์๋๋กํด์ผํ๋ค.
์๋ฅผ ๋ค์ด knit
RFC๋ https://github.com/yarnpkg/rfcs/blob/master/accepted/0000-yarn-knit.md ์ ๋ต ์ค ํ๋๋ก ๊ตฌํ ๋ ์ ์์ต๋๋ค.
์๋ ํ์ธ์.
์บ์์ ์ค๋๋ ๋ฒ์ ์ ์ฌ์ฉํ๋ ๊ฒ๋ณด๋ค ๋ ๋์ ๋์์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
๋๋ ๋์คํฌ ๊ณต๊ฐ์ด ๋ถ์กฑํ๊ณ Yarn ์บ์๊ฐ ์์ ํ ์ธ๋ชจ์๋ ์๋ฐฑ๋ง ๊ฐ์ ํ์ผ์ ๋ํด ์์ญ ๊ธฐ๊ฐ ๋ฐ์ดํธ๋ฅผ ์ฌ์ฉํ๊ณ ์์์ ๋ฐ๊ฒฌ ํ ๋๊น์ง ๋ฏฟ์ ์
IMO๋ ์ผ์์ ์ผ๋ก ๊ฐ๋ฐ ์์คํ
์ ๋ง๊ฐ ๋จ๋ฆฐ ๊ฒฝ์ฐ์๋ง ์ ์ ์๊ธฐ ๋๋ฌธ์ ์ด์ ๋ณด๋ค ๋ ์ฌ๊ฐํ๊ฒ ๋ชจ๋ ๊ฒ์ ๋ง๊ฐ ๋จ๋ฆฌ๋ IMO์
๋๋ค.
์๋ ํ์ธ์, ๋ฌธ์ ์ ๋ํ ์ ๋ฐ์ดํธ๊ฐ ์์ต๋๊น? ํนํ ๋์ผํ ์ฐ๊ฒฐ๋ ๋ค์ค ์ข ์์ฑ์ ์์กดํ๋ ์ฌ๋ฌ ์ ํ์ ํ ๋ฒ์ ์์ ํ ๋ ํนํ ํฐ ๋ฌธ์ ์ ๋๋ค. ๊ฐ๋ฐ ํ๋ฃจ์ ๊ธฐ๊ฐ ๋ฐ์ดํธ์ ์บ์ ๋ฑ. ์ ์ด๋ ์ ํ ์ฌํญ์ผ๋ก ๋ง๋ค๊ณ ๊ทธ๋ฌํ ํจํค์ง์ ๋ํ ์บ์ฑ์ ๋นํ์ฑํ ํ ์ ์์ต๋๊น?
@nikdojo ์ข
์์ฑ์ ๋ํด file:
๋์ ์์ฌ link:
ํ๋กํ ์ฝ์ ์ฌ์ฉํ๊ณ ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค. 0.26 ์์
๋๋ ํ๋ก์ ํธ ๊ฐ ์ข ์์ฑ์ด ๋ง์ ๊ฒฝ์ฐ ์์ ๊ณต๊ฐ ์ฌ์ฉ์ ์์ํ์ญ์์ค.
ํํธ๋ฅผ ์ํด @mtraynham Thx, ๊ณต์ ๋ฌธ์์์ link:
ํ๋กํ ์ฝ ์ ๋ณด๋ฅผ ์ฐพ์ผ๋ ค๊ณ ํ์ง๋ง ๊ฑฐ๊ธฐ์์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ง๊ธ ์์
๊ณต๊ฐ์ ์คํํ๊ณ ์์ต๋๋ค.
@bestander btw ์์๋ค์ํผ react-native๋ ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ์ง์ํ์ง ์์ผ๋ฏ๋ก rn libs๋ก ์์ ํ๋ฉด ์ฌ์ ํ ํฐ ๋ฌธ์ ์ ๋๋ค.
์ด๊ฒ์ ๊ฒฐ์ฝ ํด๊ฒฐ๋์ง ์์์ต๋๊น? ๋ก์ปฌ ํจํค์ง๋ฅผ ์ฐ๊ฒฐํ๋ ค๋ฉด linklocal (NPM ํจํค์ง)์ ์ฌ์ฉํด์ผํฉ๋๋ค (์บ์ฑ ๋์ Windows์์ ์ ํฉ ๋๋ ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋ก์ปฌ ํ์ผ ์์คํ
์์ ํจํค์ง๋ฅผ ์ฌ์ฉํ ๋ yarn์ด ์๋ํ๋ ํ์ค ๋ฐฉ์์ด์ด์ผ ํจ). ์๋ก์ด yarn install
๋ ์บ์์์๋ ์ค๋๋ ํญ๋ชฉ์ผ๋ก ๋ชจ๋ ๊ฒ์ ๋ฎ์ด ์ฐ๊ณ ๋ค์ ์ฐ๊ฒฐ์ ์์ํด์ผํฉ๋๋ค.
์ฐ๋ฆฌ๋ ๊ฑด์ถ ์ฐ์ฃผ ๋นํ์ฌ๊ฐ ๋ํ๊ณ ๋จ์ํ ๋ก์ปฌ ํจํค์ง๋ฅผ ์บ์ํ์ง ์์ ์ ์์ต๋๊น? ์ด ๋ฌธ์ ๋ ์ด์ 1.5 ๋
์ด๋์์ผ๋ฉฐ another-local-package
์์ ๋ฌด์ธ๊ฐ๋ฅผ ๋ณ๊ฒฝํ ๋๋ง๋ค yarn add ../<another-local-package>
์คํํ๋ ๋ฐ ์ง์ณค์ต๋๋ค.
์๋
ํ์ธ์ @fungilation
๋ค๋ฅธ ๊ด๋ จ ๋ฌธ์ ๋ฅผ ์ด์์ต๋๋ค : # 6037
์๋ํ์ง ์๋๋ค
App.js ํ์ผ์ ๋ฃ์์ต๋๋ค.
console.log ( 'here we are'), ์ถ๋ ฅ๋์ง ์์์ต๋๋ค.
๊ทธ๋ฐ ๋ค์ ๋ชจ๋ ํ์ผ์ ์ ๊ฑฐํด๋ ์ฌ์ ํ ์บ์์์ ์ถ๋ ฅ์ด ์์ฑ๋ฉ๋๋ค.
์ด๊ฒ์ ํผํ๋ ๋ฐฉ๋ฒ?
Yarn์์ด ๋ฌธ์ ์ ๋ํด ์ ๋ง ์คํจํ์ต๋๋ค. ์ด๊ฒ์ ์ ์ธํ๊ณ ๋ ๋ค๋ฅธ ๋ชจ๋ ๊ฒ์ ํ๋ฅญํ์ต๋๋ค.
ํ ์คํธ ๋ชฉ์ ์ผ๋ก ์ ๋ฒ์ ์ ๋ก์ปฌ ํจํค์ง๋ฅผ ์ค์นํ๋ ค๊ณ ํ๋๋ฐ ๋ด๊ฐ ๋ฌด์์ํ๋ ๊ณ์ ์ด์ ํจํค์ง๋ก ๋๋ฉ๋๋ค.
๋ ๋ ธ๋ ฅ ํ์ด:
yarn cache clean package-name
)yarn add
'ing with --force
node_modules/package-name
๋ฐ yarn add
์ ๊ฑฐ์ด๊ฑด ๋ง๋ ์ ๋ผ์. ์ ๋ ํ๋ฃจ ์ค ๊ฑฐ์ 4 ์๊ฐ์ ์ด๊ฒ์ ๋ณด๋์ต๋๋ค.
๋ก์ปฌ ํจํค์ง๋ฅผ ๊ฐ๋ฐํ๊ณ ์ฌ์ค์น ํ ์์๋ ๋ฅ๋ ฅ์ด ํ์ํฉ๋๋ค . .bin ํด๋์ ํ์ผ์ ์ค์นํ๊ธฐ ์ํด yarn์ ์์กดํ๊ณ ์์ผ๋ฏ๋ก yarn link
๋ ๋ฌธ์ ๊ฐ๋์ง ์์ต๋๋ค.
@ Yarn ๊ฐ๋ฐ์ : ๋ก์ปฌ ํจํค์ง๋ฅผ ์ค์นํ๊ณ ํด๋น ๋ก์ปฌ ํจํค์ง๋ฅผ ๋ณ๊ฒฝ ํ ๋ค์ ๋ค์ ์ค์นํ์ฌ ๋ณ๊ฒฝ ์ฌํญ์ ๋ฐ์ ํ ์ ์์ต๋๊น?
@gregjacobs ์ ๋ yarn install --force
์ฑ๊ณตํ์ต๋๋ค
@jonathantorley ๋ฐฉ๊ธ --force
๋ค์ ์๋ํ์ง๋ง ์์ฌ 1.12.3์์๋ ์ฌ์ ํ ์๋ํ์ง ์์ต๋๋ค.
์ด ๋ฌธ์ ์ ์ง๋ฉด ํ ๋ค๋ฅธ ์ฌ๋๋ค์ ์ํด : ์ค์ ๋ก ์ด๊ฒ์ ์๋์ํค๋ ๋ฐ ์ฌ์ฉํ ํ ๊ฐ์ง ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ข ์ ํจํค์ง์ ๋ฒ์ ๋ฒํธ๋ฅผ ๋์ด๋ ๊ฒ์ ๋๋ค. ์ฝ๊ฐ ์ฑ๊ฐ ์๋ฉฐ ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํ ์์๋ ๊ฒฝ์ฐ ๋ณ๊ฒฝ ๋ ๋๋ง๋ค ์ํํด์ผํฉ๋๋ค.
yarn
์ (๋) ๋ก์ปฌ ํจํค์ง๋ฅผ ์ค์นํ ๋์ด ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์๊ตฌํ์ง ์์์ผํฉ๋๋ค.
preinstall
์คํฌ๋ฆฝํธ์ yarn upgrade MY_PACKAGE_NAME
ํ๋๋ฐ ์ต์ NPM ๋ฒ์ ์ผ๋ก ์ ์
๊ทธ๋ ์ด๋๋ฉ๋๋ค. (๊ทธ๋๋ NPM ๋ฒ์ ์ ์๋์ผ๋ก ์ฌ๋ ค์ผํฉ๋๋ค).
์ด์ yarn add file:PATH
์ (๋) ์ด์ ์์ฌ 1.13.0์์ ํญ์ ์ ์ฝํ
์ธ ๋ฅผ ์
๊ทธ๋ ์ด๋ํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
yarn install
์์ง ์์ต๋๋ค.
@leavesster ์ฌ์ ํ ๋๋ฅผ ์ํดํ์ง ์์ต๋๋ค.
์ ๋ฐ์ดํธํ๋ ค๋ฉด tgz์ ์ด๋ฆ์ ๋ฐ๊ฟ์ผํฉ๋๋ค.
link
๋ช
๋ น์ ์ฌ์ฉํด๋ณด์ญ์์ค : https://yarnpkg.com/lang/en/docs/cli/link/
yarn add file:PATH
์์ ์ ์ฝํ
์ธ ๋ฅผ ์
๊ทธ๋ ์ด๋ํ์ง ์์์ต๋๋ค. ๋ํ package.json ๋ฐ .npmignore์ ํ์ผ์ ์กด์ค๋์ง ์์ต๋๋ค.
ํจํค์ง ๋ฒ์ ์ ๋ณ๊ฒฝํ๋ฉด ์๋ํฉ๋๋ค.
yarn add file:PATH
์์ package.json ๋ฐ .npmignore์ ํ์ผ์ ์กด์คํ๋๋กํ๋ ค๋ฉด ๋ก์ปฌ ํจํค์ง ์ข
์์ฑ์์ yarn pack
๋ฅผ ์คํ ํ ๋ค์ ์ค์นํ๋ ค๋ ์์น์์ yarn add file:path-to-local-pacckage.tgz
์คํํด์ผํฉ๋๋ค.
link
๋ช ๋ น์ ์ฌ์ฉํด๋ณด์ญ์์ค : https://yarnpkg.com/lang/en/docs/cli/link/
yarn link
์ (๋) ๋์ผํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ์ํ ๊ฒ์ด ์๋๋๋ค. ๋๊ตฐ๊ฐ package.json ๋ฐ .npmignore์ ํ์ผ๊ณผ ๊ด๋ จํ์ฌ ๊ฒ์ ๋ ๊ฒ์ฒ๋ผ npm ํจํค์ง๋ฅผ ์ํ๋ ๊ฒฝ์ฐ ์ข์ง ์์ต๋๋ค.
@leavesster ์ฌ์ ํ ๋๋ฅผ ์ํดํ์ง ์์ต๋๋ค.
์ ๋ฐ์ดํธํ๋ ค๋ฉด tgz์ ์ด๋ฆ์ ๋ฐ๊ฟ์ผํฉ๋๋ค.
๋ด ํจํค์ง์ yarn add file: PACKAGE_PAH
๋ฅผ ์ฌ์ฉํ์ฌ ํ์ฌ ํ๋ก์ ํธ์ ์ถ๊ฐํ๋ tgz
๊ฐ ์์ต๋๋ค. ๋ด ํจํค์ง์ js ์ฝ๋๊ฐ ์์ต๋๋ค. ์ด์ฉ๋ฉด tgz๊ฐ ์ฌ์ ํ ํ๋ ธ์๊น์?
๋๋ฅผ ์ํด ์ผํ์ง๋
@bestander ์ด ๋ฌธ์ ๊ฐ ์ข ๊ฒฐ ๋ ์ด์ ๋ ๋ฌด์์ ๋๊น? Yarn์ ์ฌ์ ํ โโ๋ก์ปฌ ํ์ผ๊ณผ tgz ํจํค์ง๋ฅผ ์บ์ฑํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ํ ํจํค์ง์ ํน์ ๋ฒ์ ์ deps๊ฐ ์๊ณ ๋ค๋ฅธ ํจํค์ง์ ์ฒซ ๋ฒ์งธ ํจํค์ง์ ๋์ผํ devDeps๊ฐ ์์ง๋ง ๋ค๋ฅธ ๋ฒ์ ์ด์๋ ๊ฒฝ์ฐ, ๊ทธ๋ฆฌ๊ณ ํ ํจํค์ง๋ฅผ ๋ค๋ฅธ ํจํค์ง์ ์ฐ๊ฒฐํ๋ฉด ํ๋ก์ ํธ๊ฐ ์์๋ ๊ฒฝ์ฐ์ ๊ฐ์ด ์ผ๋ถ ๊ฒฝ์ฐ ์์ ๊ณต๊ฐ์ ์๋ฃจ์ ์ด ์๋๋๋ค. .
@gregjacobs์ ๊ฐ์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. yarn cache clean package
๋์์ด๋์ง ์์์ต๋๋ค. ํ์ง๋ง yarn add path/to/package.tgz
๋ฅผ ์ค์น ํ ๋ค์ ์์นด์ด๋ธ๋ฅผ ๋ค๋ฅธ ๊ฒ์ผ๋ก ๋ฐ๊พธ๋ฉด ์ ๋ฒ์ ์ ์ค์นํ๋ฉด yarn add path/to/../to/package.tgz
์ ๊ฐ์ ๊ฒฝ๋ก
yarn cache list --pattern package
์กฐ์ฐจ๋ ๋น์ด์๋ ํด์๋ ๊ฒฝ๋ก๋ก ์บ์ ๋ ํจํค์ง๋ฅผ ์ ์ฅํ๋ ๋ค๋ฅธ ์์น๋ฅผ ์ดํดํ ์ ์์ต๋๋ค.
๋ฌธ์ ๊ฐ ์ฌ๊ธฐ ์ด๋๊ฐ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค https://github.com/yarnpkg/yarn/blob/eb2b565bb9b948e87b11119482ebc184a9d66141/src/resolvers/exotics/tarball-resolver.js#L58 -L63
๋ฌด์จ ์ผ์ด์ผ:
path/to/package.tgz
์์ ํด์๋ฅผ ์์ฑํฉ๋๋ค (์ด๊ฒ์ด path/to/package.tgz
๋ฐ path/to/../to/package.tgz
๊ฒฐ๊ณผ๊ฐ ๋ค๋ฅธ ํด์๋ก ๋ณํ๋๋ ์ด์ ์
๋๋ค)./Users/kich/Library/Caches/Yarn/v4/.tmp/c019816ee7d10ed5e1fef4072e8cc617
).isValidModuleDest
๋ฐํ false
isValidModuleDest
return true
yarn cache clean package
๋ฅผ ์คํํ์ง๋ง ์์ ๋๋ ํ ๋ฆฌ๋ ๊ทธ๋๋ก ์ ์ง๋ฉ๋๋ค.@bestander ์ฌ๊ธฐ์ ์์ ๋๋ ํ ๋ฆฌ๋ฅผ ์ ๊ฑฐ ํ ์ ์์ต๋๊น? https://github.com/yarnpkg/yarn/blob/master/src/config.js#L431 ?
๊ฐ์ ๋ฌธ์ ์ ์ง๋ฉดํ์ฌ ์์ ํด๋ ์๋์ ์บ์๋ ๋จ ํ๋ฃจ ๋์ ๋ก์ปฌ pacakge์์ ์์ ํ ํ 10GB๊ฐ ๊ฑธ๋ฆฝ๋๋ค!
์ด ๋ฌธ์ ๋ฅผ ๋ค์ ์ด ์ ์์ต๋๊น? ์ฐ๋ฆฌ๋ ๊ฐ์ ๋ฌธ์ ์ ์ง๋ฉด ํด ์์ต๋๋ค. ํ์ผ์ ํตํด ๋ค๋ฅธ ํจํค์ง๋ฅผ ์ฐธ์กฐํ๋ ๋ ํ๋ก์ ํธ :
๋งํฌ ํ๋กํ ์ฝ์ด ์ด์ ๋ํ ์ต์ ์ ์์ ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. file : //์ ์ฌ์ ํ โโ์๋์ผ๋ก ์บ์๋ฅผ ์ ๋ฆฌํ๊ณ ๊ฐ์ ์ค์น๊ฐ ํ์ํ๊ธฐ ๋๋ฌธ์ ์๋ํ์ง ์์ต๋๋ค.
https://github.com/yarnpkg/yarn/issues/2165#issuecomment -345825904
์ข ์์ฑ์ ๋ค์๊ณผ ๊ฐ์ด ๋ง๋์ญ์์ค.
"<package>": "link:./libs/<package>"
@alxtz ๋งํฌ ํ๋กํ ์ฝ์ด tgz์ ํจํค์ง์ ํจ๊ป ์๋ํฉ๋๊น?
๋งํฌ ํ๋กํ ์ฝ์ด ์ด์ ๋ํ ์ต์ ์ ์์ ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. file : //์ ์ฌ์ ํ โโ์๋์ผ๋ก ์บ์๋ฅผ ์ ๋ฆฌํ๊ณ ๊ฐ์ ์ค์น๊ฐ ํ์ํ๊ธฐ ๋๋ฌธ์ ์๋ํ์ง ์์ต๋๋ค.
์ข ์์ฑ์ ๋ค์๊ณผ ๊ฐ์ด ๋ง๋์ญ์์ค.
"<package>": "link:./libs/<package>"
๊ฐ์ฌํฉ๋๋ค. ์ด๊ฒ์ node_modules
์์ file:..
์ฐธ์กฐ๋ฅผ ์ฌ๋ณผ๋ฆญ ๋งํฌํ๋ NPM์ ๋์์ ๋ณต์ ํฉ๋๋ค. ๋ฌธ์ํ๋์ง ์์ ๊ฒ ๊ฐ์ต๋๋ค. ์ ์ด๋ ์ฌ๊ธฐ์์ ์ฐพ์ ์์๋ ๊ณณ์ ์์ต๋๋ค : https://yarnpkg.com/lang/en/docs/package-json/
์ํ๊น๊ฒ๋ link
๋ ๋ชจ๋ ๊ฒฝ์ฐ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด, SDK ํจํค์ง์์ ๊ณต์ / ํผ์ด ์ข
์์ฑ์ด ํ์ํฉ๋๋ค. ๋ณ๊ฒฝํ๋ฉด ๋ก์ปฌ ๊ฐ๋ฐ ์์
์ ์ํด ๋งํฌ๋ฉ๋๋ค.
link
ํ๋ฉด yarn์ ์ข
์์ฑ์ด ๊ณต์ / ํผ์ด ์ข
์์ฑ์์ ์ธ์ํ์ง ๋ชปํ๋ฉฐ ์๋ชป๋ ์ฌ๋ณผ๋ฆญ ๋งํฌ๊ฐ์๋ ๋ก์ปฌ ํจํค์ง๋ฅผ ์ฌ์ฉํฉ๋๋ค.
๋ด๊ฐ ์ฌ์ฉํ๊ณ yarn pack
ํจ๊ป yarn add file:<path_to_packed_tgz>
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด.
@wKich ํ์์ ์ธ ๋ฐ๊ฒฌ์ ๋ฐ๋ผ ๋์ผํ ํด์๋ฅผ ์์ฑํ์ง ์๋๋ก ํจํค์ง๋ฅผ ํฌ์ฅํ๊ณ ๋ด ์ ์ฅ์์ ๋ถ์ฌ ๋ฃ์ ๋๋ง๋ค ํจํค์ง ์ด๋ฆ์ ๊ณ์ ๋ฐ๊ฟ ์๋ ์์ง๋ง ์ฑ๊ฐ์ ์ผ์
๋๋ค.
์ ์ฅ์๋ฅผ ๋ถ๊ธฐํ๊ณ if ๋ฌธ์ ์ถ๊ฐ ์ ์ ์ถ๊ฐํ์ฌ yarn์ด yarn add file:<path>
์ฌ์ฉํ์ฌ ์ง์ ๋ ๊ฒฝ์ฐ ์บ์์์ ๋ก์ปฌ .tgz ํจํค์ง๋ฅผ๋ก๋ํ์ง ๋ชปํ๋๋กํฉ๋๋ค.
const dest = this.config.getTemp(crypto.hash(url));
// If specified using file: never load from cache
if (!url.match(/file:/) && (await this.config.isValidModuleDest(dest))) {
// load from local cache
} else {
// continue as if it's a new package
}
์ฌ๋๋ค์ด ์ํ๋ฉด PR์ ํ ์ ์์ง๋ง, ์ ์๋ ํด๋ณธ ์ ์ด์๊ณ ๊ฝค ์๋ฑํ ์์ ์
๋๋ค.
์ด ์ ๊ทผ ๋ฐฉ์์ด ์์ฌ์ ์บ์์ ๋ก์ปฌ ํจํค์ง๋ฅผ ๊ณ์ ์ถ๊ฐํ ์ง ์ฌ๋ถ๋ฅผ ๋๊ตฐ๊ฐ ํ์ธํ ์ ์์ต๋๊น?
์ง๊ธ์ @ojboj , yalc
์ด (๊ฐ) ์ ๋๋ก ์์ ๋ ๋๊น์ง ๋์์ด ๋ ์ ์์ต๋๋ค. ๊ฒ์ํ๊ธฐ ์ ์ ๋ก์ปฌ์์ ํจํค์ง๋ฅผ ํ
์คํธํ๋ ๊ฒ์ด ์ ๋ง ์ ์๋ํ์ต๋๋ค.
@souporserious ๊ทธ๊ฒ์ด ๋ด๊ฐ ํ์๋ก / ์ํ๋ ๊ฒ์ ๋๋ค. ์ ๋ง ๊ฐ์ฌํฉ๋๋ค!
๋ฏธ์ณค์ด ์ด๊ฒ์ ์๋ ์ด ์ง๋ ํ์๋ ์ฌ์ ํ ๋ฌธ์ ์ ๋๋ค.
[email protected]์ ๊ณ ์ ๋์ด
@wKich ๊ทธ๋ ๊ฒ ๋ฏฟ์ต๋๋ค! ๊ฐ์ธ์ ์ผ๋ก ํ ์คํธํ์ง๋ ์์์ง๋ง ์๋ก์ด ํฌํธ ํ๋กํ ์ฝ์ ํตํด ๋ก์ปฌ ๊ฐ๋ฐ์ ํด๊ฒฐํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
์ฌ์ ํ link:
ํ๋กํ ์ฝ์ ์ฌ์ฉํ์ฌ "unpack in same destination"์ค๋ฅ๊ฐ ๋ฐ์ํ๊ณ ์บ์ ๋๋ ํ ๋ฆฌ๋ฅผ ์ฐธ์กฐํ๊ณ ์์ผ๋ฏ๋ก yarn์ด ์ฌ์ ํ link:
์ข
์์ฑ์ ์บ์ฑํ๋ ๊ฒ ๊ฐ์ต๋๋ค. ์๋ ์ค๋ฅ์์ front-end
๋ฐ renderer
๋ฅผ ์ฌ์ฉํ๋ ๊ฐ ์ฑ์ .deps/
ํด๋์ ๋ณต์ฌ ๋ ๋์ผํ ๋ก์ปฌ ํจํค์ง์ ๋ณต์ฌ๋ณธ 2 ๊ฐ๋ฅผ ์ฐธ์กฐํ๊ณ ์์ต๋๋ค. (๊ด๋ จ์๋ ์ด์ ๋ก ์๋ณธ์ ์ฐ๊ฒฐํ ์ ์์)
warning Pattern ["@horizon/common<strong i="11">@link</strong>:packages/front-end/.deps/@horizon/common"] is trying to unpack in the same destination "/home/garyo/.cache/yarn/v6/[email protected]/node_modules/@horizon/common" as pattern ["@horizon/common<strong i="12">@link</strong>:packages/renderer/.deps/@horizon/common"]. This could result in non-deterministic behavior, skipping.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
@hantuzun ์ ๋ก์ปฌ ์ข ์์ฑ์ ์บ์ํฉ๋๊น? ์ด์จ๋ ๋ก์ปฌ์ด๋ฏ๋ก ์บ์ ์ฌ๋ถ์ ๊ด๊ณ์์ด ๋น ๋ฆ ๋๋ค.