๊ธฐ๋ฅ ์ ์์ฒญํ๊ฑฐ๋ ๋ฒ๊ทธ๋ฅผ ๋ณด๊ณ ํ์๊ฒ ์ต๋๊น?
๋ฒ๋
ํ์ฌ ํ๋์ ๋ฌด์์
๋๊น?
yarn install
์คํจ:
error An unexpected error occurred: "expected workspace package to exist for \"@babel/template\"".
์์ฌ๋ฅผ 1.19
์
๊ทธ๋ ์ด๋ํ ํ ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ธฐ ์์ํ์ผ๋ฉฐ ์ต์ ์์ ๋ฒ์ 1.21.1
์์ ์ฌ์ ํ ์ง์๋ฉ๋๋ค.
์ ์ฌํ ์ค๋ฅ๊ฐ #7797 ๋ฐ #7734์์ ๊ด์ฐฐ๋ ์ ์์ต๋๋ค.
ํ์ฌ ๋์์ด ๋ฒ๊ทธ์ธ ๊ฒฝ์ฐ ์ฌํ ๋จ๊ณ๋ฅผ ์ ๊ณตํ์ญ์์ค.
https://github.com/callstack/haul ์์ ์ข
์์ฑ์ ์ค์นํ ๋ ์ค๋ฅ๊ฐ ์ฌํ๋ ์ ์์ต๋๋ค.
git clone [email protected]:callstack/haul.git
cd haul
yarn install
์์๋๋ ๋์์ ๋ฌด์์ ๋๊น?
yarn install
๋ ์ข
์์ฑ์ ์ฑ๊ณต์ ์ผ๋ก ์ค์นํด์ผ ํฉ๋๋ค.
node.js, ์์ฌ ๋ฐ ์ด์ ์ฒด์ ๋ฒ์ ์ ์ธ๊ธํ์ญ์์ค.
12.14.1
/ 13
(๋ ๋ชจ๋์์ ์ฌํ ๊ฐ๋ฅ)1.21.1
์์ ์์ญ ํจํค์ง์ ์ข ์์ฑ์ ์ถ๊ฐํ๋ ค๊ณ ํ ๋ ๋์ผํ ๋์์ด ๋ฐ์ํฉ๋๋ค.
yarn workspace @scope/mypackage add npm-package
error An unexpected error occurred: "expected workspace package to exist for \"@babel/highlight\"".
์ ์ฌํ ์ธ๋ถ ์ฌํญ
Yarn version:
1.21.1
Node version:
10.17.0
Platform:
darwin x64
OS
macOS 10.15.2
node@10 ์์ ๋์ผํ ๋ฌธ์ ๊ฐ ๋ฐ์
An unexpected error occurred: "expected workspace package to exist for \"lru-cache\"".
Node: 10.15.3
yarn: 1.21.1
OS: macOS 10.15.1
๋ด ์ ์ฅ์์์ yarn์ ์ ์ฑ ๊ธฐ๋ฅ ์ ์คํํ์ฌ (์์) ํด๊ฒฐ ๋ฐฉ๋ฒ ์ ์ฐพ์์ต๋๋ค.
> yarn policies set-version 1.18.0
๊ธฐ๋ณธ์ ์ผ๋ก ๋ค์์ ์๋ฏธํฉ๋๋ค.
๋ด๋ถ์ ์ผ๋ก ์ด ๋ช ๋ น์ GitHub ๋ฆฌํฌ์งํ ๋ฆฌ์์ ๋จ์ผ ํ์ผ ๋ฆด๋ฆฌ์ค๋ฅผ ๋ค์ด๋ก๋ํ๊ณ ํ๋ก์ ํธ ๋ด๋ถ(.yarn/releases ํด๋ ๋ด๋ถ)์ ์ ์ฅํ ๋ค์ ๋ง์ง๋ง์ผ๋ก ์ ํ์ผ์ ๊ฐ๋ฆฌํค๋๋ก ๊ตฌ์ฑ์ ์ ๋ฐ์ดํธํฉ๋๋ค(yarn-path ์ฌ์ฉ ).
์ด๊ฒ์ Yarn 1.21.1์์๋ ๋ณผ ์ ์์ต๋๋ค. yarn upgrade-interactive
์คํํ ๋ ๋ด ์ ์ฅ์์์ ์ค๋ฅ๋ฅผ ์ฌํํ ์ ์์ต๋๋ค. _ํ์ง๋ง_ package.json
์์ ๋ฒ์ ์ ์๋์ผ๋ก ๋ฒํํ๋ ๊ฒ์ ์ด๋ค ์ด์ ๋ก ์ฌ์ ํ ์ ์๋ํฉ๋๋ค.
์ด๊ฒ๊ณผ ๋ง์ฃผ์น๊ธฐ:
error An unexpected error occurred: "expected workspace package to exist for \"string-length\"".
๋ด ์์
๊ณต๊ฐ ํจํค์ง yarn add @reduxjs/toolkit
์ ๊ด๋ จ ์๋ ์ข
์์ฑ์ ์ถ๊ฐํ๋ ค๊ณ ํ ๋. yarn
๊ฐ ๋ค์ ์ค๋ package.json์ dep๋ฅผ ์๋์ผ๋ก ์ถ๊ฐํ๋ฉด ์๋ํฉ๋๋ค.
yarn cache clean
์๋ํ๊ณ yarn.lock ๋ฐ node_modules ํด๋๋ฅผ ๋ชจ๋ ์ญ์ ํ์ง๋ง ๋ณ๊ฒฝ ์ฌํญ์ ์์ต๋๋ค.
โถ yarn --version
1.21.1
์ฌ๊ธฐ์ ๊ฐ์ ์ค๋ฅ๊ฐ ์์ต๋๋ค.
$ yarn workspace @scope/web add ramda
error An unexpected error occurred: "expected workspace package to exist for \"chalk\"".
info If you think this is a bug, please open a bug report with the information provided in "/home/user/projects/web/apps/web/yarn-error.log".
info Visit https://yarnpkg.com/en/docs/cli/add for documentation about this command.
error Command failed.
Exit code: 1
yarn-error.log ์ถ๊ฐ
Arguments:
/home/user/.nvm/versions/node/v10.13.0/bin/node /home/user/.nvm/versions/node/v10.13.0/lib/node_modules/yarn/lib/cli.js add ramda
PATH:
/home/user/.yarn/bin:/home/user/.config/yarn/global/node_modules/.bin:/home/user/.yarn/bin:/home/user/.config/yarn/global/node_modules/.bin:/home/user/.nvm/versions/node/v10.13.0/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/home/user/Android/Sdk/emulator:/home/user/Android/Sdk/tools:/home/user/Android/Sdk/tools/bin:/home/user/Android/Sdk/platform-tools:/home/user/Android/Sdk/emulator:/home/user/Android/Sdk/tools:/home/user/Android/Sdk/tools/bin:/home/user/Android/Sdk/platform-tools
Yarn version:
1.21.1
Node version:
10.13.0
Platform:
linux x64
Trace:
Invariant Violation: expected workspace package to exist for "chalk"
at invariant (/home/user/.nvm/versions/node/v10.13.0/lib/node_modules/yarn/lib/cli.js:2314:15)
at _loop2 (/home/user/.nvm/versions/node/v10.13.0/lib/node_modules/yarn/lib/cli.js:94898:9)
at PackageHoister.init (/home/user/.nvm/versions/node/v10.13.0/lib/node_modules/yarn/lib/cli.js:94957:19)
at PackageLinker.getFlatHoistedTree (/home/user/.nvm/versions/node/v10.13.0/lib/node_modules/yarn/lib/cli.js:48743:20)
at PackageLinker.<anonymous> (/home/user/.nvm/versions/node/v10.13.0/lib/node_modules/yarn/lib/cli.js:48754:27)
at Generator.next (<anonymous>)
at step (/home/user/.nvm/versions/node/v10.13.0/lib/node_modules/yarn/lib/cli.js:310:30)
at /home/user/.nvm/versions/node/v10.13.0/lib/node_modules/yarn/lib/cli.js:328:14
at new Promise (<anonymous>)
at new F (/home/user/.nvm/versions/node/v10.13.0/lib/node_modules/yarn/lib/cli.js:5301:28)
npm manifest:
{
...
}
v1.19
์ดํ๋ก ๋์ผํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค.
yarn upgrade-interactive
์ฌ์ฉํ ์ ์๊ฒ ๋์์ต๋๋ค. ๋ฒ์ ์
๋ฐ์ดํธ๋ฅผ ์ ์ฉํ์ง ๋ชปํฉ๋๋ค.
v1.21
์
๋ฐ์ดํธํ ํ ๋ ์ด์ yarn install
์์ต๋๋ค. ํญ์ ๋ค์ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
์ ๋ํ ์์ ์์ ๊ณต๊ฐ ํจํค์ง๊ฐ ...
1.18
๋ค์ด๊ทธ๋ ์ด๋ํ๋ฉด ๋ ๋ฌธ์ ๊ฐ ๋ชจ๋ ํด๊ฒฐ๋์์ต๋๋ค.
์ด๋ฌํ ๋ฌธ์ ๋ lerna
๋ฐ yarn workspaces
๋ฅผ ์ฌ์ฉํ๋ ๋จ์ผ ๋ฆฌํฌ์งํ ๋ฆฌ์ธ ํ๋์ ํ๋ก์ ํธ์์๋ง ๋ฐ์ํ๋ค๋ ์ ์ ์ง์ ํด์ผ ํฉ๋๋ค.
@raspo์ ๊ฐ์ ๊ฒฝํ
๋ด ์์
๊ณต๊ฐ์ด ํ์ฑํ๋ monorepo์์ ๋ ์ด์ ๋ช
๋ น์ค์์ ํจํค์ง๋ฅผ ์ค์นํ ์ ์์ต๋๋ค.
๋ด ํจํค์ง ๊ด๋ฆฌ์์์ ๊ฐ์ ธ์จ ์์ฌ๋ฅผ ๋ค์ด๊ทธ๋ ์ด๋ํ๊ณ ์ถ์ง ์์๊ธฐ ๋๋ฌธ์ npx๋ฅผ ๋์ฐํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ผ๋ก ์ฌ์ฉํ์ต๋๋ค.
npx [email protected] add your-deps-here
๋ํ 1.17์์ 1.22๊น์ง ์ป์ผ์ญ์์ค. istanbul-lib-instrument
์์ํ๋ ์์์ ํจํค์ง์ธ ๊ฒ ๊ฐ์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ jest-snapshot
๋ค์ cssstyle
๋ฐ๋ณตํฉ๋๋ค.
Invariant Violation: expected workspace package to exist for "istanbul-lib-instrument"
at invariant (/usr/local/Cellar/yarn/1.22.0/libexec/lib/cli.js:2314:15)
at _loop2 (/usr/local/Cellar/yarn/1.22.0/libexec/lib/cli.js:94959:9)
at PackageHoister.init (/usr/local/Cellar/yarn/1.22.0/libexec/lib/cli.js:95018:19)
at PackageLinker.getFlatHoistedTree (/usr/local/Cellar/yarn/1.22.0/libexec/lib/cli.js:48743:20)
at PackageLinker.<anonymous> (/usr/local/Cellar/yarn/1.22.0/libexec/lib/cli.js:48754:27)
at Generator.next (<anonymous>)
at step (/usr/local/Cellar/yarn/1.22.0/libexec/lib/cli.js:310:30)
at /usr/local/Cellar/yarn/1.22.0/libexec/lib/cli.js:328:14
at new Promise (<anonymous>)
at new F (/usr/local/Cellar/yarn/1.22.0/libexec/lib/cli.js:5301:28)
lerna.json
{
"packages": [
"packages/*",
"apps/*"
],
"version": "1.0.17",
"npmClient": "yarn",
"useWorkspaces": true
}
package.json:
{
...
"workspaces": {
"packages": [
"apps/*",
"packages/*"
],
"nohoist": [
"**/webpack-dev-server"
]
},
...
}
๋๋ ๋ํ์ด ํ๊ท ์ด๋ค ์์์ ๋ฐ๊ณ ์์ต๋๊น?
์ฌ๊ธฐ์์๋ ๋์ผํฉ๋๋ค. mac์์ monorepo ๋ฐ yarn ๋ํ์ ์ ๊ทธ๋ ์ด๋
Invariant Violation: expected workspace package to exist for "stack-utils"
at invariant (/usr/local/Cellar/yarn/1.22.0/libexec/lib/cli.js:2314:15)
at _loop2 (/usr/local/Cellar/yarn/1.22.0/libexec/lib/cli.js:94959:9)
at PackageHoister.init (/usr/local/Cellar/yarn/1.22.0/libexec/lib/cli.js:95018:19)
at PackageLinker.getFlatHoistedTree (/usr/local/Cellar/yarn/1.22.0/libexec/lib/cli.js:48743:20)
at PackageLinker.<anonymous> (/usr/local/Cellar/yarn/1.22.0/libexec/lib/cli.js:48754:27)
at Generator.next (<anonymous>)
at step (/usr/local/Cellar/yarn/1.22.0/libexec/lib/cli.js:310:30)
at /usr/local/Cellar/yarn/1.22.0/libexec/lib/cli.js:328:14
at new Promise (<anonymous>)
at new F (/usr/local/Cellar/yarn/1.22.0/libexec/lib/cli.js:5301:28)
$ yarn lerna --version
3.20.2
$ yarn version
1.22.0
$ node --version
v13.8.0
์์ ์๋ฃจ์
์ผ๋ก yvm
๋ฅผ ์ฌ์ฉํ๊ณ 1.18.0
๋ฒ์ ์ ์ฌ์ฉํ์ญ์์ค. ๋๋ฅผ ์ํด ์ผํ๋ค
yarn policies set-version 1.18.0
๋ ์ ์๊ฒ ํจ๊ณผ์ ์
๋๋ค - yarn์ ํ๋ก์ ํธ์ ๋ํด์๋ง ์ด ๋ฒ์ ์ผ๋ก ์๋ ์ ํ๋ฉ๋๋ค! ๋๋ฌด ๊น๋ํด!
https://classic.yarnpkg.com/en/docs/cli/policies/
๋๋ monorepo Lerna + Yarn (v1.22)์์ ๋์ผํ ๋ฌธ์ ๋ฅผ ๊ฒช์์ต๋๋ค. yarn.lock
๋ค์ ์์ฑํ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค.
์ด๊ฒ์ #7734์ ๋ณต์ ๋ณธ์ฒ๋ผ ๋ณด์ ๋๋ค.
@storybook/api์ ๋ํด ์คํํฉ๋๋ค. @nerdyman ์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ๊ทธ ๋์ ์ ์๊ฒ ํจ๊ณผ๊ฐ ์์๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋ด ํจํค์ง ๊ด๋ฆฌ์์์ ๊ฐ์ ธ์จ ์์ฌ๋ฅผ ๋ค์ด๊ทธ๋ ์ด๋ํ๊ณ ์ถ์ง ์์๊ธฐ ๋๋ฌธ์ npx๋ฅผ ๋์ฐํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ผ๋ก ์ฌ์ฉํ์ต๋๋ค.
npx [email protected] add your-deps-here
๋๋ฅผ ์ํ ์ผ์ด์ผ
๋๋ ์ด์ ๋์ผํ ๋ฌธ์ ๊ฐ ์์๊ณ yarn.lock
์ญ์ ํ๊ณ yarn install
(๋๋ yarn workspace some-workspace bla bla bla
)๋ฅผ ์คํํด๋ ํจ๊ณผ๊ฐ ์์์ง๋ง ๋ฌธ์ ๋ ํ ๊ตฌ์ฑ์๊ณผ ๋น๊ตํ์ฌ ์ต์ ๋ฒ์ ์ ์์ฌ๋ฅผ ์ฌ์ฉํ๊ณ ์๋ค๋ ๊ฒ์
๋๋ค. .
๊ทธ๋์ ํด๊ฒฐ์ฑ
์ yarn policies
๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด์์ต๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก yarn policies set-policy
์คํํ๋ฉด ์์ ์ ์ธ ์ต์ ๋ฒ์ ์ yarn์ ๋ค์ด๋ก๋ํ์ฌ .yarn/
์ ์ ์ฅํ๊ณ ๋ค์ด๋ก๋ํ yarn ๋ฒ์ ์ ๊ฐ๋ฆฌํค๋๋ก .yarnrc
๋ ์
๋ฐ์ดํธํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๋ชจ๋ ์ฌ๋์ด ๋์ผํ ์์ฌ ๋ฒ์ ์ ์ฌ์ฉํ๊ณ ์ด๋ฌํ ์ข
๋ฅ์ ๋ฌธ์ ๋ฅผ ํผํ ์ ์์ต๋๋ค.
์ถ๊ฐ ์ ๋ณด: https://classic.yarnpkg.com/en/docs/cli/policies#toc -policies-set-version
๋ฐ๋ผ์ ์ด ๋ฌธ์ ์ ๋ํ ํด๊ฒฐ์ฑ
์ yarn
๋ค์ด๊ทธ๋ ์ด๋ํ๋ ๊ฒ์
๋๋ค. yarn 2.0์ ์ฌ๋ฏธ์์ ๊ฒ์
๋๋ค.
@remorses ๋ต์ฅ์์ ํ์๋ฅผ ์๋ชป ์ฝ์๋ค๋ฉด ์ฌ๊ณผ๋๋ฆฝ๋๋ค. 1.x์์ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด PR์ ์ ์ถํ๋ ์ฌ๋์ ๋ณธ ์ ์ด ์์ต๋๋ค. ๋ค๋ฅธ ๋ฌธ์ ์์ ์ฌ๋๋ค์ด ๊ฑฐ๋ถ๋ ์ด ๋ฒ๊ทธ๋ ๋ค๋ฅธ ๋ฒ๊ทธ์ ๋ํ ์์ ์ฌํญ์ ์ ์ถํ๋๋ฐ ๊ทธ๊ฒ ์ ๋ฅผ ์ฌํ๊ฒ ํ ์๋ ์์ต๋๋ค. ๋ฌด์๋๊ณ ์๋ 1.x์ ๋ํ ํ๋ถํ PR์ด ์๋ ๊ฒฝ์ฐ ๊ด๋ฆฌ์๊ฐ 1.x ์ ์ง ๊ด๋ฆฌ์ ๋์์ ์ฃผ๊ณ ์ ํ๋ ์ปค๋ฎค๋ํฐ ๊ตฌ์ฑ์์ ํ์ํ๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ์ปค๋ฎค๋ํฐ์ PR ๋ฐ ์ ์ง ๊ด๋ฆฌ๊ฐ ์์ผ๋ฉด ํ์ฑ ๊ฐ๋ฐ ์ง์ ์ ์ง์คํ๋ ค๋ ์ฌ๋์ ๋น๋ํ๊ธฐ ์ด๋ ต์ต๋๋ค.
์ด๊ฒ์ ์ผ๋ฐ์ ์ผ๋ก ์์ ๊ณต๊ฐ์์ ๋์ผํ npm ํจํค์ง์ ๋ค๋ฅธ ๋ฒ์ ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์ ๋ฐ์ํฉ๋๋ค.
@scope/www
๋ฐ @scope/api
์์
๊ณต๊ฐ์ด ์๊ณ ๋ ๋ค eslint
npm ํจํค์ง๊ฐ ์๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ๊ทธ๋ฌ๋ @scope/www
๋ [email protected]
ํ๋ ๋ฐ๋ฉด @scope/api
๋ [email protected]
ํฉ๋๋ค. ๋ํ, ๋น์ ์ [email protected]
๋ฃจํธ์ packages.json
.
๊ทธ๋ฐ ๋ค์ ์์
๊ณต๊ฐ ์ค ํ๋์ ํจํค์ง๋ฅผ ์ค์นํ๋ ค๊ณ ํ๋ฉด error An unexpected error occurred: "expected workspace package to exist for \"eslint\"".
์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. eslint
๋ฒ์ ์ค ์ด๋ ๊ฒ๋ ๋์ผํ์ง ์๊ธฐ ๋๋ฌธ์
๋๋ค.
๋์ผํ๊ฒ ๋ง๋ค๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํ์ง ์์ต๋๋ค.
ํฅ๋ฏธ ๋กญ๋ค์. @abdullahceylan ์ถ๊ฐ ์ ๋ณด ๊ฐ์ฌํฉ๋๋ค. - ๊ทธ๋ฅ ๊ถ๊ธํฉ๋๋ค: Yarn 1.19.2 ์ด์ (์ค๋ฅ ์์)์ ์ด ์ํฉ์ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ์ต๋๊น?
@friederbluemle์๊ฒ๋ ๊ฐ์ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
@abdullahceylan์ด ๋งํ๋ฏ์ด ๋ด ์์
๊ณต๊ฐ์ ๋ค๋ฅธ ๋ฒ์ ์ @babel/core
๊ฐ ์๊ธฐ ๋๋ฌธ์ ์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค. @babel/core
๋ฅผ ๋์ผํ ๋ฒ์ ์ผ๋ก ์
๋ฐ์ดํธํ๋ฉด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ต๋๋ค! ๐
์ด ์ค๋ฅ์ ๋ํ ๋ณด๋ค ๊ตฌ์ฒด์ ์ธ ๋ฉ์์ง๊ฐ ์์์ผ๋ฉด ํฉ๋๋ค.
๋ํ์ด ๋ฌธ์ ๊ฐ ์์์ง๋ง ํด๊ฒฐํ ์ ์์ต๋๋ค.
๊ทธ ์ด์ ๋ ๋ด ํจํค์ง ์ค ํ๋์ ๋ฃจํธ ์์
๊ณต๊ฐ์ ํจํค์ง(eslint)๊ฐ ์์๊ธฐ ๋๋ฌธ์
๋๋ค. ๋ฃจํธ ์์
๊ณต๊ฐ์์ ์ ๊ฑฐํ๊ณ ๋ชจ๋ ๊ฒ์ด ๋ค์ ์๋ํ์ต๋๋ค.
๋ด ๋ฌธ์ ๊ฐ nextjs์ @babel/core
์์ 7.7.7
๋์๊ณ ์ผ๋ถ ๋ค๋ฅธ ๋ชจ๋์๋ ^7.10.0
๊ฐ ํ์ํ๊ธฐ ๋๋ฌธ์ ์์ฌ๊ฐ ํจํค์ง ๋ด๋ถ์ ์ถ๊ฐ node_module ํด๋๋ฅผ ์ข
์์ฑ ์ถฉ๋์ ํด๊ฒฐํฉ๋๋ค.
๋๋ resolutions
๋ฅผ ์ฌ์ฉํ์ฌ ํด๊ฒฐํ์ต๋๋ค.
"resolutions": {
"**/@babel/core": "7.10.2"
},
๊ทธ๋ฆฌ๊ณ yarn install
/ npx lerna bootstrap
๋ด๊ฐ ์์ ํ๊ณ ์๋ ์์ฉ ํ๋ก๊ทธ๋จ์์ ๋ค์์ ๋ณ๊ฒฝํ์ฌ ์ด ๋ฒ๊ทธ๋ฅผ ํด๊ฒฐํ ์ ์์์ต๋๋ค.
"workspaces": [
"packages/**/*"
],
์๊ฒ
"workspaces": [
"packages/@org1/*",
"packages/@org2/*",
"packages/*"
],
์๋ง๋ yarn
๊ฐ ์ค์๋ก ๋ด ํจํค์ง ์ค ํ๋์ node_modules ๋ด๋ถ์ ์ค์ฒฉ๋ ์์
๊ณต๊ฐ์ ๊ฐ์งํ๊ณ ์์ต๋๊น? ๋๋ ๊ทธ๊ฒ์ ์กฐ์ฌํ ์๊ฐ์ด ์์๋ค. ๋๋ ์์ฌ 1.22.4๋ฅผ ์ฌ์ฉํ๊ณ ์์๋ค.
ํธ์ง: ์ด๊ฒ์ ์ข
์์ฑ ๋ฒ์ ์ ํตํฉํ๋ฉด(์ด๋ฅผ ํตํด packages
๋๋ ํ ๋ฆฌ ๋ฐ์ผ๋ก ํธ์ด์คํธ๋จ) ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์๋ ์๋ค๋ ์ฃผ์ฅ์ ์ํด ํ์ฆ๋๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋๋ฅผ ์ํด ์ผํ ๊ฒ์
yarn lerna add npmpackage --scope=@scope/my-package
์ฌ๊ธฐ์ npx
๋์ yarn
์์ต๋๋ค.
์ฌ๊ธฐ yarn add
ํจํค์ง๋ฅผ ์ํํ๋ ค๊ณ ํ๋ฉด ์์ ํ ํญ๋ฐํฉ๋๋ค. ๊ณ ์ณ์ฃผ์ธ์๐
๊ฐ์๊ธฐ ๊ฐ์๊ธฐ ์ด๊ฒ์ ๋ฐ์ด ๋ค์์ต๋๋ค.
ํธ์ง: @abdullahceylan์ด ์ธ๊ธํ ๋๋ก npm ์ข ์์ฑ๊ณผ ๋์ผํ ์ด๋ฆ์ ๊ฐ์ง ๋ชจ๋ ธ ๋ฆฌํฌ์งํ ๋ฆฌ์ ๋ก์ปฌ ํจํค์ง๊ฐ ์์ต๋๋ค.
yarn add
์ ๊ฐ์ ๋ฌธ์ ๊ฐ ์์์ต๋๋ค. ์ ๊ฒฝ์ฐ์๋ eslint
์ ๋ํด ๋ถํํ์ต๋๋ค. ์๋์ผ๋ก eslint
๋ฒ์ ์ 7.2.0
.
yarn.lock
๋ฅผ ์ดํด๋ณด๊ณ eslint
์ ๋ค๋ฅธ ๋ฒ์ ์ ์์ฒญํ๋ ์ข
์์ฑ์ ํ์ธํ์ต๋๋ค( eslint
ํค์๋์ ํจ๊ป "์ฐพ๊ธฐ" ๋๊ตฌ ์ฌ์ฉ).
๋ง์ ์ข
์์ฑ์ด 6.8.0
๋ฒ์ ์ ํ์๋ก ํ๊ณ ์์ผ๋ฉฐ ์ด๋ฅผ ์ค์นํ๋ ค๊ณ ํ๋ค๋ ๊ฒ์ ๊นจ๋ฌ์์ต๋๋ค.
eslint
๋ฒ์ ์ 6.8.0
์ค์ ํ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค.
resolutions
๋งค๊ฐ๋ณ์๋ฅผ package.json
ํ์ผ์ ์ถ๊ฐํ๋๋ก ์ ํํ ์ ์์ต๋๋ค. ๋ด ๊ฒฝ์ฐ ๊ฐ์์ ๊ฒ์ด๋ค.
"resolutions": {
"eslint": "6.8.0"
}
๋๊ตฐ๊ฐ๋ฅผ ๋์ธ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
๋ง์ ๋์์ด ๋์์ต๋๋ค @dxit ๊ฐ์ฌํฉ๋๋ค ๐
์ ํํ ๋ฌด์์ด ์ด๊ฒ์ ์ผ์ผํค๋์ง ์ ํํ ์ง์ ํ ์ ์๋ ์ฌ๋์ด ์์ต๋๊น? v1์ ์์ ์ฌํญ์ด ํฌํจ๋ฉ๋๊น?
ํธ์ด์คํ ์ ์ฌ์ฉํ๋ ๋ชจ๋ ธ ๋ฆฌํฌ์งํ ๋ฆฌ์์ ๋์ผํ ์์ ์ ์คํํฉ๋๋ค. deps ์ค์น๋ฅผ ์ํ npx ํดํน์ผ๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค.
Lerna๋ฅผ ์ฌ์ฉํ๊ณ ์๋ค๊ณ ๊ฐ์ ํ๋ฉด @mmun ์์ ์ฌํญ์ ์๋ก ์์กดํ๋ ํจํค์ง์ ๊ด๋ จ๋ ์๋ชป๋ ํด๊ฒฐ ์์์ ๊ด๋ จ์ด ์์ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ์ฌ๊ธฐ ๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
์๋ ํ๊ฒฝ์์์ด ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค.
Node: 10.20.1
Yarn: 1.22.4
์๋ ์ค์ ์ผ๋ก ์์ ํ์ต๋๋ค.
Node: 10.15.3
Yarn: 1.13.0
Yarn์ 1.18.0
๋ก ์ค์ ํ๋ ค๊ณ ํ์ง๋ง 10.20.1
๋
ธ๋์์๋ ์๋ํ์ง ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
์ฐธ๊ณ ์ฌํญ: yarn
์ ๋ค์ ๋ฒ์ ์ด ์ถ์๋๋ฉด ๋ค์ ํ์ธํ์ธ์.
@dkempner yarn 1์๋ ์ ๋ฒ์ ์ด ์์ ๊ฒ ๊ฐ์ต๋๋ค... ์ ๋ฒ์ ์ด ์๋ ๊ฒฝ์ฐ ์ด ์ ์ฅ์์์ ๋งค์ฐ ์กฐ์ฉํฉ๋๋ค(์ง๋ 2๊ฐ์ ๋์ ์ปค๋ฐ 1๊ฐ๋ง). yarn@berry tho๋ก ์๋ํด ๋ณผ ์ ์์ต๋๋ค.
๊ฐ ๋ฆด๋ฆฌ์ค๋ฅผ ํ ์คํธํ ํ ์ ์ด๋ Windows์ ๊ฒฝ์ฐ 1.19.2์์ ๋ฒ๊ทธ๊ฐ ์์๋ฉ๋๋ค. ๋ฐ๋ผ์ 1.19.1 - 1.19.2 ์ค๋จ ์ฌ์ด์ ์ผ๋ถ ๋ณ๊ฒฝ
@thefat32 - ๋ค ๋ง์ต๋๋ค. Windows์์๋ง์ด ์๋๋๋ค. ๋ด ๊ธฐ๋ก์๋ ์ค๋ฅ๊ฐ ํ์๋ ๋๋ง๋ค ํด๊ฒฐ ๋ฐฉ๋ฒ์ผ๋ก ์์ฃผ ์ฌ์ฉํ๋ ์ด ๋ช ๋ น์ด ์์ต๋๋ค.
npx [email protected] upgrade-interactive
์์ฌ monorepo์ ์ฝ๊ฐ์ ์์กด์ฑ์ ์ถ๊ฐํ ๋๋ ๊ฐ์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
error An unexpected error occurred: "expected workspace package to exist for \"jest\"".
์๋ ์๋ค์, ๋๋ ๋๊ฐ์ ๋ฌธ์ ๊ฐ ์์๋ค!
An unexpected error occurred: "expected workspace package to exist for \"@jest-cli"".
๋ด ์์
๊ณต๊ฐ์ ๋ค๋ฅธ ๋ฒ์ ์ jest-cli๊ฐ ์๊ธฐ ๋๋ฌธ์ ์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค. ๋ชจ๋ ํจํค์ง๋ฅผ ์ต์ ๋ฒ์ ์ผ๋ก ์
๊ทธ๋ ์ด๋ํ์ฌ ํด๊ฒฐ ํ์ต๋๋ค.
@abdullahceylan _transitive_ ์ข
์์ฑ์ด ์๋ ๊ฒฝ์ฐ์๋ ์ฌ์ ํ workspaces.nohoist
๋ณ๊ฒฝ ์ฌํญ์ด ์์ต๋๊น?
@customcommander TBH ๊ทํ์ ๊ฐ์ ์ํฉ์ ๋ฐ์ํ์ง ์์์ง๋ง ๊ทธ๋ฌํ ์ํฉ์์ ๊ฐ์ฅ ๋จผ์ ์๋ํ ๊ฒ์ nohoist
์ต์
์ "**/pagkage-name"
์ ๊ฐ์ ๊ฒ์ ์ฌ์ฉํ๋ ๊ฒ์
๋๋ค.
์คํ ์ค๋ฒํ๋ก์ ๊ฒ์๋จ; ๋ง์ผ์ ๋๋นํ์ฌ
์ผ๋ถ ์ข
์์ฑ์ ์
๊ทธ๋ ์ด๋ํ๋ ค๊ณ ํ ๋ Yarn์์ "Invariant Violation: ์์๋๋ ์์
๊ณต๊ฐ ํจํค์ง๊ฐ ์กด์ฌํด์ผ ํจ"์ ๋ฐ์์ํค๋ ์ด์ ๋ ๋ฌด์์
๋๊น?
@customcommander TBH ๊ทํ์ ๊ฐ์ ์ํฉ์ ๋ฐ์ํ์ง ์์์ง๋ง ๊ทธ๋ฌํ ์ํฉ์์ ๊ฐ์ฅ ๋จผ์ ์๋ํ ๊ฒ์
nohoist
์ต์ ์"**/pagkage-name"
์ ๊ฐ์ ๊ฒ์ ์ฌ์ฉํ๋ ๊ฒ์ ๋๋ค.
์์?
ํ์ฌ lerna์์ ์ด๊ฒ์ ๊ฒฝํํ๊ณ ์์ต๋๋ค.
v1.19.2
์์ ๋ฐ์ํ๊ธฐ ์์ํ๋๋ก ์ด ๋ฒ์๋ฅผ ์ขํ์ต๋๋ค.
๋
ธ๋: v12.13.0
์์ฌ: ์๋ <= v1.19.1
์ด์ ์ฒด์ : macOS 10.15.6
https://github.com/yarnpkg/yarn/compare/v1.19.1...v1.19.2
yarn policies set-version 1.19.1
๋ lerna์ ํจ๊ป ์๋ํฉ๋๋ค.
์์ฌ ์ ์ฑ
์ yarn policies set-version 1.18.0
๋ณ๊ฒฝํ๋ ๊ฒ๋ ์ ์๊ฒ ํจ๊ณผ์ ์ด์์ต๋๋ค.
๋๋ ~์ ์์๋ค:
์์ฌ : 1.22.5
๋
ธ๋ : 10.21
OS : ์์น๋ฆฌ๋
์ค(x64)
์ด ์ค๋ ๋์์ ์ด๋ฏธ ์ ์ํ ๊ฒ ์ด์ธ์ ์๋ฃจ์ ์ ์์ง๋ง PR https://github.com/yarnpkg/yarn/pull/7289 ๊ฐ ํ๊ท๊ฐ ๋์ ๋ ๊ณณ, ํนํ ์ด ๋ผ์ธ์ธ ๊ฒ ๊ฐ์ต๋๋ค .
๋ด๊ฐ ๊ฒฝํํ ์ด ๋ฒ๊ทธ์ ๋ฒ์ ์ ์ค๋ฅ ๋ฉ์์ง์ ํ์๋ ์ข ์์ฑ์ด ์ค์ฒฉ๋ ์์ ๊ณต๊ฐ์ด ์๋ ์์ ๊ณต๊ฐ ๋ฃจํธ์๋ง ์ค์น๋์๊ธฐ ๋๋ฌธ์ ํนํ ํผ๋์ค๋ฝ์ต๋๋ค.
https://github.com/smably/yarn-workspaces-hoisting-bug ์์ ์ต์ํ์ ์ฌํ์ ๋ง๋ค์์ต๋๋ค pretty-quick
๊ฐ ํธ๋ฆฌ์ ํ ๋ฒ๋ง ํ์๋๋๋ผ๋ expected workspace package to exist for "pretty-quick"
์ป์์ต๋๋ค. ์ค์ ์ค๋ฅ๋ yarn์ด pretty-quick
์ ์ ์ด ์ข
์์ฑ์ ๋์ด์ฌ๋ฆฌ๋ ค๊ณ ํ ๋ ๋ฐ์ํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋์ง ํ์ธํ๊ธฐ ์ํด ์์ฌ ์ฝ๋๋ฒ ์ด์ค๋ฅผ ๋๋ฌ๋ณด์์ง๋ง ๊ฝค ๋ง์ ๋จ์ ํ
์คํธ๊ฐ ๋ด ์ปดํจํฐ์์ ์คํจ ํ๊ณ README ์ console.log
๋๋ debugger
๋ช
๋ น๋ฌธ์ด ์๋ํ์ง ์์๊ธฐ ๋๋ฌธ์ ( yarn
์์ ํ๋ก์ธ์ค๋ฅผ ์์ฑํ๊ณ ๋
ธ๋์ --inspect
์์ํ์ง ์๊ธฐ ๋๋ฌธ์ ์ถ์ธกํ๊ณ ์์ต๋๋ค.
์ ๊ฒฝ์ฐ์๋ @babel/core
์ ๋ฒ์ ์ถฉ๋์ผ ์ ์์ต๋๋ค. ๋๋ ๊ทธ๊ฒ์ ํด๊ฒฐํ๋ค : yarn why @babel/core
์ํด ์ค์น๋ ๋ฒ์ ์ ํ์ธํ๊ณ , ๋ฒ์ ์ ํตํฉํ๊ธฐ ์ํด ๋์ผํ ๋ฒ์ ์ด ์๋ ํจํค์ง์ ํด์๋๋ฅผ ์ถ๊ฐํ์ญ์์ค.
๋ค๋ฅธ ์ฌ๋(์ ์ด ๋์์ฃผ์ธ์)์ด ์ฃผ๋ง์ ์ ๋ฐ์ ๋๋ฒ๊น /๊ธฐ๋ณธ์ ์ผ๋ก ์ปดํจํฐ๋ฅผ ๋ค์ ํฌ๋งทํ๋ ๋ฐ ์ผ๊ธฐ ๋๋ฌธ์ ๋น์ทํ ๋ฌธ์ ๊ฐ ์๋ ๊ฒฝ์ฐ๋ฅผ ๋๋นํ์ฌ ์ด๊ฒ์ ์ถ๊ฐํฉ๋๋ค.
๋ชจ๋ ๊ฒ์ด ๊ด์ฐฎ๋ค๊ณ ์๊ฐํ์ฌ yarn policies set-version 1.19.1
์ค์ ํ์ต๋๋ค. ๋ช ์๊ฐ ํ ๋๋ Next.js ์ฑ์ ๋น๋ํ๊ณ Error occurred prerendering page...
์ป์์ต๋๋ค. ๋๋ ๋ง ๊ทธ๋๋ก ํ์ ์๋์์ ๋ชจ๋ ๊ฒ์ ์๋ํ๊ณ yarn policies set-version 1.19.1
๋ฅผ ํ๋ ๊ฒ์ด ์์ธ์ด๋ผ๋ ๊ฒ์ ๊นจ๋ฌ์์ต๋๋ค.
๋ ์ด์ํ ๊ฒ์ ๊ทธ๊ฒ์ด ๋ด ์ง์ญ ํ๋ก์ ํธ๋ฅผ ํ๊ดดํ๋ค๋ ๊ฒ์
๋๋ค. ์์ ์ ์ธ ๋ถ๊ธฐ๋ก ์ ํํ๊ณ ๋ชจ๋ ๋
ธ๋ ๋ชจ๋, yarn.lock ๋ฑ์ ์ญ์ ํ๊ณ ์ต์ ๋ฒ์ ์ yarn์ผ๋ก ๋ค์ ์ ํํ๊ณ yarn install
์คํํ ๋ค์ Next.js ์ฑ์ ๋ค์ ๋น๋ํ๋ฉด ๋์ผํ ๊ฒฐ๊ณผ๊ฐ ๋ํ๋ฉ๋๋ค. ์ค๋ฅ.
๋ฌด์จ ์ผ์ธ์ง ๋ชจ๋ฅด๊ฒ ์ด. ๋๋ ๋ง ๊ทธ๋๋ก ๋ ธ๋, ์์ฌ ๋ฑ์ ๋ค์ ์ค์นํ์ต๋๋ค. ์ ์ผํ ํด๊ฒฐ์ฑ ์ ์ฑ์ ์ญ์ ํ๊ณ ๋ค์ ๋ณต์ ํ๋ ๊ฒ์ด ์์ต๋๋ค.
eslint
ํจํค์ง์ ๋์ผํ ๋ฌธ์ ๊ฐ ์์์ต๋๋ค. ๋ฌธ์ ๋ ๋ด ์์
๊ณต๊ฐ ๋ฃจํธ์ eslint๊ฐ dev ์ข
์์ฑ์ผ๋ก ์๋ค๋ ๊ฒ์ด์ง๋ง ๋ค๋ฅธ ๋ฒ์ ์ eslint์ ์ข
์๋ npm ํจํค์ง์ ์ข
์๋ ์์
๊ณต๊ฐ ํจํค์ง๋ ์์์ต๋๋ค. ๋ด๊ฐ ํ ์ผ์ ๋ชจ๋ ํจํค์ง๊ฐ ๋์ผํ ๋ฒ์ ์ eslint์ ์์กดํ๊ณ ์ค๋ฅ๊ฐ ์ฌ๋ผ์ก๋์ง ํ์ธํ๋ ๊ฒ๋ฟ์ด์์ต๋๋ค.
๋ํ์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค. @export-mike์ ์๋ฃจ์ ์ ํซํฝ์ค๋ก ์๋ํฉ๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
์ด์ ๋ํ yarn dev ํ์ ๊ณต์ ์๋ต/์์ ๋ก๋๋งต์ด ์์ต๋๊น?
๋ด ์๋ฃจ์ ์ pnpm์ผ๋ก ์ ํํ๋ ๊ฒ์ด ์์ต๋๋ค. ์ ๊ทน ์ถ์ฒํฉ๋๋ค!
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
yarn policies set-version 1.18.0
๋ ์ ์๊ฒ ํจ๊ณผ์ ์ ๋๋ค - yarn์ ํ๋ก์ ํธ์ ๋ํด์๋ง ์ด ๋ฒ์ ์ผ๋ก ์๋ ์ ํ๋ฉ๋๋ค! ๋๋ฌด ๊น๋ํด!https://classic.yarnpkg.com/en/docs/cli/policies/