npmrc ํ์ผ์ด๋?
๐ก npm์์ ์ค์ ์ ์ ์ฅํด๋๋ ํ์ผ ๋ด์ฅ(builtin), ์ ์ญ(global), ์ฌ์ฉ์(user), ํ๋ก์ ํธ(project) 4๊ฐ์ง ๋ฒ์์ npmrc ํ์ผ์ด ์กด์ฌ
- ๋ด์ฅ ์ค์
- npm์ด ์ค์น๋ ๊ฒฝ๋ก์ ์๋ npmrc ํ์ผ์ ๋ช ์๋จ
- ๋ชจ๋ ๊ธฐ๋ณธ ์ค์ ์ ๋ด๊ณ ์์
- ์ ์ญ ์ค์
- ๊ฐ์ ์ปดํจํฐ๋ฅผ ์ฌ์ฉํ๋ ๋ค๋ฅธ ์ฌ์ฉ์์ ๋ชจ๋ ํ๋ก์ ํธ์ ๊ด๋ฒ์ํ๊ฒ ์ ์ฉ
- ์ผ๋ฐ์ ์ผ๋ก ์ ๊ฑด๋ค์ง ์์
๋ณดํต, ์ฌ์ฉ์ ๋ฒ์์ ํ๋ก์ ํธ ๋ฒ์์์ npmrc ํ์ผ์ ๋ค๋ฃธ
โํ์ผ ๋ช ์์ . ์ ๋ถ์ฌ ์จ๊ธด ํ์ผ๋ก ์ฌ์ฉ
- ์ฌ์ฉ์ ๋ฒ์
- ์ด์ ์ฒด์ ์ ์ฌ์ฉ์ ํ(home) ๋๋ ํ ๋ฆฌ์ ์์น
- ํ๋ก์ ํธ ๋ฒ์
- ํ๋ก์ ํธ ์ต์์(root) ๋๋ ํ ๋ฆฌ์ ์์น
ํ๋ก์ ํธ ๋ฒ์๊ฐ ์ฌ์ฉ์ ๋ฒ์๋ณด๋ค ์ข์
โ ํ๋ก์ ํธ ์ค์ ์ด ์ฌ์ฉ์ ์ค์ ๋ณด๋ค ์ฐ์ ์
npm config ์ปค๋งจ๋
๐ก npm์ ์ฌ๋ฌ npmrc ํ์ผ์ ์์ฝ๊ฒ ๊ด๋ฆฌํ ์ ์๋๋ก npm config ์ปค๋งจ๋ ์ ๊ณต
- npm config ์ปค๋งจ๋๋ฅผ ์ฌ์ฉํ ๋ --location ๋๋ -L ์ต์ ์ ํตํด์ ๋ฒ์๋ฅผ ์ง์ ํด ์ค ์ ์์.
- ์ด ์ต์ ์ global๋ก ์ค์ ํ๋ฉด ์ ์ญ, user๋ก ์ค์ ํ๋ฉด ์ฌ์ฉ์, project๋ก ์ค์ ํ๋ฉด ํ๋ก์ ํธ ๋ฒ์๊ฐ ์ ์ฉ
- default๋ user
- ์ฌ์ฉ์ ํ ๋๋ ํ ๋ฆฌ์ ์๋ .npmrcํ์ผ์ ์๋๋ก ์ปค๋งจ๋๊ฐ ์คํ
private npm registry๋?
๐ก ์ธ๋ถ์ ์ผ๋ก ๋ ธ์ถ๋์ง ์๋ npm registry
private npm registry ์ ํ์?
๐ก private package๋ฅผ ์ํ๋ ๊ฒ ๋ณธ์ธ์ด ์ํ ์กฐ์ง์ ์ํด npm registry๋ฅผ ๊ตฌ์ถํ๋ ๊ฒ
private npm registry๋ ์ด๋ป๊ฒ ๊ตฌ์ถ?
๐ก verdaccio ํ์ฉ
- create-react-app, stroybook, angular cli, babel๋ฑ์ด ์ด๋ฅผ ํ์ฉ
- Use private packages
- Cache npmjs.org registry
- npmjs.org ์๋ฒ๊ฐ ๋๋ฆฌ๊ฑฐ๋, ์ฃฝ๊ฒ ๋๋ ์ด์๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด ๋ฏธ๋ฆฌ ํ์ํ ํจํค์ง๋ค์ ์บ์ํ์ฌ ๋๋น
- Link multiple registries
- ํ๋์ ํ๋ก์ ํธ์์ ์ฌ๋ฌ ๊ฐ์ registry ์ ๋ชจ๋์ ๊ฐ์ ธ์ฌ ์ ์์
- verdaccio ์์ ์ ๊ณตํ๋ ๊ธฐ๋ฅ์ธ uplinks ๋ฅผ ์ฐธ๊ณ
- Override public packages
- ๋ณธ์ธ์ ํ๋ก์ ํธ์ ์คํ ์์ค๋ฅผ ์ฌ์ฉ์, ๋ฒ๊ทธ๋ฅผ ๋ฐ๊ฒฌํ์ฌ PR ๋ฅผ ๋ ๋ ธ์ง๋ง ์น์ธ๋์ง ์๊ฑฐ๋ ์ง์ฐ๋๊ณ ์์ ๊ฒฝ์ฐ๊ฐ ์กด์ฌํ ๋ โ ๋ณธ์ธ์ด ๊ตฌ์ถํ npm ์๋ฒ์ ๋ฐ์๋ ์ฝ๋๋ฅผ ์ฌ๋ ค๋๊ณ ์ฌ์ฉ ๊ฐ๋ฅ
- E2E Testing
- E2E ํ ์คํธ๋ publish ํ๋ ํจํค์ง๋ค์ ๋ํด ์ฒดํฌ๋ฅผ ์๋ฏธ
- publish - npm ์๋ฒ์ ์ ๋ก๋ ํ๋ ํ์
- local npm registry ๋ฅผ ํตํด publish ๋ฅผ ์๋ฎฌ๋ ์ด์
- create-react-app, storybook ๋ฑ์์ ์ฌ์ฉํ๊ณ ์๋ ๋ฐฉ์
์ฌ์ฉ ๋ฐฉ๋ฒ
private npm registry ๊ตฌ์ถ :: ๋ง์ด๊ตฌ๋ฏธ
## ๋ช
๋ น์ด๋ฅผ ์
๋ ฅํ๋ฉด .npmrc ํ์ผ์ ์ ์ฅ
$ npm config set @tistory:registry <http://localhost:4873>
//.npmrcํ์ผ์ ์ง์ ์
ํ
๊ฐ๋ฅ
@tistory:registry=http://localhost:4873
- ์ฐธ๊ณ
or$ npm install @myorg/mypackage
//.npmrc //example๋ค @project_a:registry=https://npm.fury.io/AUTH_TOKEN/USER_NAME/ :registry=https://npm.pkg.github.com/ //npm.pkg.github.com/:_authToken=
- "dependencies": { "@myorg/mypackage": "^1.3.0" }
- scope | npm Docs
Reference
npmrc ํ์ผ๊ณผ npm config ์ปค๋งจ๋
using myproject/.npmrc with registry
Using a Private NPM Repository (.npmrc) - Colyseus & Arena Cloud Documentation
[NPM] ๋ค๋ฅธ npm registry์์ npm ๋ชจ๋ ๋ค์ด๋ก๋ํ๊ธฐ
'Development' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐ๋ฒจ(Babel) (0) | 2023.06.15 |
---|---|
์นํฉ(Webpack) (0) | 2023.06.15 |
[axios] axios 2 (0) | 2023.01.27 |
[axios] axios 1 (0) | 2023.01.21 |
๋๊ธ