npm cli flag: ` force` and ` legacy peer deps` - TEAM-ARK/inflearn-clone-front GitHub Wiki
inflearn์ drag and drop์ ๋ง๋ค๊ธฐ ์ํด ๊ฐ์ฅ ๋น์ทํ sortablejs ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ธฐ์ํด ์ค์นํ๋ ค๋ ์ค ์๋ฌ๊ฐ ๋ฐ์ํ๋ค. ๋ด๊ฐ ์ค์นํ CRA์์ ์๋์ผ๋ก ์ค์น๋ react์ ๋ฒ์ ์ 17.0.2์ธ๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ 16.9.0์ ์ฌ์ฉํ๋ค๋ ๊ฒ ๊ฐ๋ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ๋ฆฌ์กํธ๊ฐ ํฌํจ๋์ด ์์๋ฆฌ๋ ์๊ณ ์๋ง dependency๋ก 16.9.0 ์ด์์ ํ์๋ก ํ๋ค๋ ๊ฒ ๊ฐ์๋ฐ 17.0.2๋ฉด ๊ทธ ์ด์์ธ๋ฐ ์ ์๋ฌ๊ฐ ๋๋์ง๋ ์ ๋ชจ๋ฅด๊ฒ ์ง๋ง ์ด์จ๋ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค.
ํฐ๋ฏธ๋ ์๋ฌ ๋ฉ์ธ์ง์์ npm install ํ ๋ --force ๋๋ --legacy-peer-deps๋ฅผ ๋ถ์ฌ์ ํด๊ฒฐ์ ํ๋ผ๊ณ ํ๋๋ฐ ์ด ๋์ ์ฐจ์ด๋ฅผ ๋ชฐ๋ผ์ ์ด๋ฒ์ ์์๋ณด๊ณ ์ ํ๋ค.
npm v7์์ ๋ฌ๋ผ์ง ์
2021๋ 2์ npm 7๋ฒ์ ์ด ๋์๋ค.
Automatically installing peer dependencies is an exciting new feature introduced in npm 7. In previous versions of npm (4-6), peer dependencies conflicts presented a warning that versions were not compatible, but would still install dependencies without an error. npm 7 will block installations if an upstream dependency conflict is present that cannot be automatically resolved. - in npm github blog
์.. ์ด๊ฒ npm v7๋ถํด peer dependencies๊ฐ ์๋์ผ๋ก ์ค์น๊ฐ ๋๋๋ฐ ์ด๋ฏธ react๊ฐ ์ค์น๋์ด ์์ผ๋๊น ์๋ฌ๊ฐ ๋จ๋๊ฑฐ๊ตฌ๋ ์ด์ฉ์ง ๋ฆฌ์กํธ๋ฅผ ์ react-sortable js์์ ์ค์น๋ฅผ ํ๋ ค๊ณ ํ๋๊ฑด๊ฐ ์ถ์๋๋ฐ ์ด๊ฒ ๋๋ฌธ์ด์๋ค.
๊ทธ๋ฆฌ๊ณ npm v7๋ถํด peer dependencies์ ๋ฒ์ ์ด ๋ฌ๋ผ์ ์ถฉ๋์ด ์์ ๊ฒฝ์ฐ ์๋ฌ๊ฐ ๋ฐ์ํ๋ฉด์ ์ค์น๊ฐ ๋์ง ์๋๋ค.
-
--legacy-peer-deps: ignore all peerDependencies when installing, in the style of npm version 4 through version 6.
- ์ค์น ์ ๋ชจ๋ peerDependencies๋ฅผ ๋ฌด์ํ๋ค. npm4~6 ๋ฒ์ ์ฒ๋ผ
-
--strict-peer-deps: fail and abort the install process for any conflicting peerDependencies when encountered. By default, npm will only crash for peerDependencies conflicts caused by the direct dependencies of the root project.
- peerDependencies๋ฅผ ์ถฉ๋์ด ์๊ธฐ๋ฉด ์ค์น๊ฐ ์ค๋จ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก npm์ ๋ฃจํธ ํ๋ก์ ํธ์ ์ง์ ์ ์ธ ์ข ์์ฑ์ผ๋ก ์ธํ peerDependencies ์ถฉ๋์ ๋ํด์๋ง ์ถฉ๋ํฉ๋๋ค.
๊ฒฐ๋ก
--force๋ฅผ ์ฌ์ฉํ๋ฉด ์ถฉ๋ํ๋ peerDependencies๊ฐ ๋ฃจํธ ํ๋ก์ ํธ์ ์ค์น๋๋๋ก ํ์ฉ --legacy-peer-deps๋ npm v7์์ ์ ๊ณตํ๋ peerDependencies๊ฐ ์๋์ผ๋ก ์ค์น๋๋ ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ง ์์ --legacy-peer-deps๋ณด๋จ --force๋ฅผ ์ฌ์ฉํ๋๊ฒ ๋ซ๋ค๋ ์๊ฒฌ์ด ๋ ๋ง๋ค.
์ฐธ๊ณ
- ๊ฐ์ธ ๋ธ๋ก๊ทธ ์ฐธ๊ณ ๊ธ
- https://stackoverflow.com/questions/66020820/npm-when-to-use-force-and-legacy-peer-deps
- https://runebook.dev/ko/docs/npm/cli/v7/using-npm/config
- https://www.py4u.net/discuss/352844