Yarn: ์ž‘์—… ์˜์—ญ์— ์ข…์†์„ฑ์„ ์„ค์น˜ํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ์ž‘์—… ์˜์—ญ ํŒจํ‚ค์ง€๊ฐ€ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2020๋…„ 01์›” 08์ผ  ยท  56์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: yarnpkg/yarn

๊ธฐ๋Šฅ ์„ ์š”์ฒญํ•˜๊ฑฐ๋‚˜ ๋ฒ„๊ทธ๋ฅผ ๋ณด๊ณ  ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?
๋ฒŒ๋ ˆ

ํ˜„์žฌ ํ–‰๋™์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?
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 ์—์„œ ์ข…์†์„ฑ์„ ์„ค์น˜ํ•  ๋•Œ ์˜ค๋ฅ˜๊ฐ€ ์žฌํ˜„๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. git clone [email protected]:callstack/haul.git
  2. cd haul
  3. yarn install

์˜ˆ์ƒ๋˜๋Š” ๋™์ž‘์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

yarn install ๋Š” ์ข…์†์„ฑ์„ ์„ฑ๊ณต์ ์œผ๋กœ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

node.js, ์›์‚ฌ ๋ฐ ์šด์˜ ์ฒด์ œ ๋ฒ„์ „์„ ์–ธ๊ธ‰ํ•˜์‹ญ์‹œ์˜ค.

  • ๋…ธ๋“œ: 12.14.1 / 13 (๋‘˜ ๋ชจ๋‘์—์„œ ์žฌํ˜„ ๊ฐ€๋Šฅ)
  • ์›์‚ฌ: 1.21.1
  • ์šด์˜ ์ฒด์ œ: macOS 10.15.2

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

yarn policies set-version 1.18.0 ๋Š” ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ž…๋‹ˆ๋‹ค - yarn์€ ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•ด์„œ๋งŒ ์ด ๋ฒ„์ „์œผ๋กœ ์ž๋™ ์ „ํ™˜๋ฉ๋‹ˆ๋‹ค! ๋„ˆ๋ฌด ๊น”๋”ํ•ด!
https://classic.yarnpkg.com/en/docs/cli/policies/

๋ชจ๋“  56 ๋Œ“๊ธ€

์ž‘์—… ์˜์—ญ ํŒจํ‚ค์ง€์— ์ข…์†์„ฑ์„ ์ถ”๊ฐ€ํ•˜๋ ค๊ณ  ํ•  ๋•Œ ๋™์ผํ•œ ๋™์ž‘์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

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" ์™€ ๊ฐ™์€ ๊ฒƒ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@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์œผ๋กœ ์ „ํ™˜ํ•˜๋Š” ๊ฒƒ์ด ์—ˆ์Šต๋‹ˆ๋‹ค. ์ ๊ทน ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค!

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰