사내 NPM 저장소에 공통 모듈 배포하기
현우
company-libs/
├─ packages/
│ ├─ utils/ # 날짜, 문자열, 배열, 객체 등 범용 유틸
│ ├─ api-types/ # 공통 TypeScript 타입
│ ├─ eslint-config/ # 팀 린트 규칙
│ └─ tsconfig/ # 공통 TS 설정
├─ package.json
└─ pnpm-workspace.yaml{
"name": "common_npm_module",
"version": "1.0.0",
"scripts": {
"build": "pnpm -r run build",
"publish:beta": "pnpm run build && pnpm -r publish --tag beta --no-git-checks",
"publish:release": "pnpm run build && pnpm -r publish --no-git-checks"
},
"packageManager": "pnpm@12.4.2",
"publishConfig": {
"registry": "https://abis.ahnlab.com/artifactory/api/npm/npm-local-repos/"
}
}packages/detection-signature/
index.js
language/yara.tmLanguage.json
language/snort.tmLanguage.json
language/sigma.tmLanguage.json
package.json
vite.config.jsexport { default as yara } from "./language/yara.tmLanguage.json";
export { default as snort } from "./language/snort.tmLanguage.json";
export { default as sigma } from "./language/sigma.tmLanguage.json";{
"name": "detection-signature",
"version": "0.1.0-beta.0",
"type": "module",
"files": [
"dist"
],
"main": "./dist/index.cjs",
"module": "./dist/index.js",
"exports": {
".": {
"import": "./dist/index.js",
"require": "./dist/index.cjs"
}
},
"scripts": {
"build": "vite build"
},
"devDependencies": {
"vite": "^7.0.0"
}
}
import { defineConfig } from "vite";
export default defineConfig({
build: {
lib: {
entry: './index.js',
formats: ["es", "cjs"],
fileName: (format) => `index.${format === "es" ? "js" : "cjs"}`
}
}
})npm login --registry=사내 레포지토리 주소npm publishnpm install detection-signature // 또는 pnpm add detection-signature