Package.json 생성기
npm init을 실행하고 열한 개의 프롬프트에 답하는 대신, 폼을 채우면 깔끔하고 올바르게 구조화된 package.json을 돌려받습니다. 이 생성기는 필수 필드(name, version), 자주 쓰는 필드(scripts, dependencies, devDependencies, engines), 그리고 패키지를 찾고 게시할 수 있게 만드는 부가 요소(repository, bugs, keywords, license)를 다룹니다.
package.json 생성 방법
-
1
이름과 버전 입력
이름은 npm 규칙을 따릅니다: 소문자, URL 안전, 214자 미만. 버전은 semver입니다(예: 0.1.0).
-
2
모듈 유형 선택
CommonJS(기본) 또는 "type": "module"을 통한 ESM. Node.js 14+ 프로젝트에 중요합니다.
-
3
스크립트 추가
start, build, test, lint: `npm run <name>`으로 실행되는 명령들.
-
4
의존성 나열
런타임 패키지는 dependencies에, 도구는 devDependencies에.
-
5
메타데이터 설정
설명, 작성자, 라이선스, 저장소 URL, 키워드.
-
6
출력 복사
프로젝트 루트의 새 package.json에 붙여 넣으세요.
가장 중요한 필드
| 필드 | 필수? | 비고 |
|---|---|---|
name |
예 | 소문자, 1~214자, URL 안전 |
version |
예 | Semver (major.minor.patch) |
type |
아니요 | ESM이면 “module”, CommonJS면 생략 |
main |
권장 | CommonJS 진입점(index.js) |
exports |
권장 | CJS/ESM 이중을 위한 현대적 exports 맵 |
scripts |
강력 권장 | npm run <name> 명령 |
dependencies |
필요시 | 런타임 패키지 |
devDependencies |
필요시 | 빌드 도구, 테스트 러너, 린터 |
engines |
있으면 좋음 | 필요한 Node 버전 범위 |
license |
게시 시 예 | MIT, Apache-2.0 같은 SPDX 식별자 |
Semver 치트시트
1.0.0, major.minor.patch^1.0.0, 1.x.x와 호환(>=1.0.0, <2.0.0)~1.0.0, 패치 업데이트만(>=1.0.0, <1.1.0)>=1.0.0 <2.0.0, 명시적 범위1.0.0-beta.1, 사전 릴리스latest, 버전이 아니라 npm 태그
npm install package 실행 시 기본값은 ^로, 호환되는 업그레이드를 허용합니다.
갖춰 둘 만한 표준 스크립트
{
"scripts": {
"start": "node index.js",
"dev": "nodemon index.js",
"build": "tsc",
"test": "vitest",
"lint": "eslint .",
"format": "prettier --write ."
}
}
이름 짓기 함정
- 대문자 금지.
MyPackage는npm install에 실패합니다. - 공백 금지. 하이픈을 쓰세요:
my-package. - 스코프 이름은 GitHub나 npm 조직의 경우
@org/로 시작합니다:@acme/utils. - 예약어.
node_modules,favicon.ico,core,express는 패키지 이름으로 쓸 수 없습니다.
라이선스 옵션
인정된 SPDX 식별자를 고르세요:
- MIT, 가장 관대한 흔한 선택.
- Apache-2.0, 특허 부여가 있는 관대한 라이선스.
- ISC, 매우 짧은 MIT 유사 라이선스, npm 기본값.
- GPL-3.0-or-later, 카피레프트.
- UNLICENSED, 비공개 패키지, 배포용 아님.
잘못되거나 모호한 라이선스 문자열은 npm publish 시 경고를 발생시킵니다.
자주 묻는 질문
dependencies는 당신의 패키지를 사용하는 프로젝트에서 누군가 npm install을 실행할 때 설치됩니다. devDependencies는 패키지 자체의 개발 환경에서만 설치됩니다. 런타임 패키지는 dependencies에, 테스트/빌드 도구는 devDependencies에 넣으세요.
애플리케이션이라면 네. 잠금 파일은 정확한 버전을 고정해 머신과 CI 전반에서 재현 가능한 설치를 보장합니다. npm에 게시하는 라이브러리 패키지라면 잠금 파일은 선택 사항입니다, 소비자가 자기 잠금 파일을 갖습니다.
패키지를 기본적으로 ESM(import/export 구문)으로 만들려는 경우에만 필요합니다. 없으면 .js 파일은 CommonJS로 취급됩니다. “type”과 관계없이 ESM 파일에는 .mjs, CommonJS 파일에는 .cjs도 쓸 수 있습니다.
코드가 테스트된 Node 버전입니다. 오늘날 전형적인 선택은 "engines": {"node": ">=18"}입니다. 오류가 아니라 경고지만, 도구가 이를 존중하고 사용자가 올바르게 고정합니다.
관련 도구
보색 찾기
어떤 입력에 대해서도 보색을 찾습니다. HSL 반대 색, 분할 보색 쌍, 그리고 접근성 있는 조합 제안을 반환합니다.
Webpack 설정 생성기
순수 JavaScript, React, Vue용 webpack 5 webpack.config.js를 만드세요. TypeScript, Babel, CSS 또는 Sass, 이미지, HtmlWebpackPlugin, 개발 서버, npm install 명령까지 함께 제공합니다.
텍스트 파일 인코딩 변환기
깨진 문자를 고치기 위해 텍스트를 UTF-8, UTF-16, Latin-1, Windows-1252 등 여러 인코딩 사이에서 변환하세요.
XML 포매터
일관된 들여쓰기로 XML 문서를 정렬 출력하고, 정확한 줄 번호로 적격성 오류를 잡아냅니다.
HEX → ASCII 변환기
16진 바이트 시퀀스를 ASCII 텍스트로 변환합니다. 프로토콜 디버깅, 리버스 엔지니어링, CTF 챌린지에 좋습니다.
Protocol Buffers 디코더
hex, Base64, Base64URL, 텍스트 또는 파일의 Protobuf 와이어 형식 바이트를 브라우저에서 디코딩하고 정확한 필드 후보를 확인한 뒤 비공개 보고서로 내보냅니다.
이 도구는 다른 언어로도 제공됩니다
- Generator package.json [ID]
- مولد package.json [AR]
- Generador de Package.json [ES]
- package.json-Generator [DE]
- Trình tạo package.json [VI]
- PackageJsonジェネレータ [JA]
- Package.json-generator [SV]
- Package.json-generator [NL]
- Gerador de Package.json [PT]
- Générateur de package.json [FR]
- Generator package.json [PL]
- ตัวสร้าง package.json [TH]
- Generatore di Package.json [IT]
- Генератор package.json [RU]
- Package.json Oluşturucu [TR]
- package.json 生成器 [ZH]
- Package.json Generator [EN]