ETC
npm 패키지에서 붙는 골뱅이(@) 있고 없고 차이
lim
2023. 11. 22. 22:45
반응형
"devDependencies": {
"@arcanis/sherlock": "^2.0.3",
"@babel/core": "^7.18.10",
"@babel/preset-env": "^7.18.10",
"@babel/preset-react": "^7.18.6",
"@babel/preset-typescript": "^7.18.6",
"@types/jest": "^28.1.6",
"@types/micromatch": "^4.0.1",
"@types/node": "^18.17.15",
"@types/react": "^16.8.0",
"@types/semver": "^7.1.0",
"@yarnpkg/cli": "workspace:^",
"@yarnpkg/core": "workspace:^",
"@yarnpkg/eslint-config": "workspace:^",
"@yarnpkg/fslib": "workspace:^",
"@yarnpkg/libzip": "workspace:^",
"@yarnpkg/sdks": "workspace:^",
"clipanion": "^4.0.0-rc.2",
"esbuild-wasm": "0.17.5",
"eslint": "^8.45.0",
"jest": "^29.2.1",
"pirates": "^4.0.5",
"tslib": "^2.4.0",
"typescript": "5.3.1-rc"
yarn이나 npm을 통해서 패키지를 관리하다보면 패키지에 골뱅이 문자(@)가 있는 것과 없는 것을 볼 수 있다.
항상 크게 신경쓰지 않고 지나쳤던 부분인데, 문득 이 부분이 궁금해져서 알아봤다.
@의 의미
이는 Scoped package라고 해서 일종의 네임스페이스 개념으로 사용한다. 이 기능을 통해서 개인이나 조직은 자신만의 네임스페이스에 필요한 패키지드을 그룹화해서 사용할 수 있다. 이는 또한 해당 패키지를 만든 조직을 공식적으로 보장할 수 있다는 장점도 있다. 예를들어 @angular 라는 Scoped package로 시작하는 패키지는 angular 팀에서 만든 패키지임을 보장할 수 있다. 또한 패키지명 앞에 네임스페이스가 붙기 때문에 같은 패키지명을 다른 조직에서 정의해도 충돌하지 않는다는 장점도 있다.
반응형