[Node.js] pkg
Updated:
- Node.js 런타임을 바이너리 실행파일로 빌드하고 싶을 때 사용하는 모듈
Usage
npm install -g pkg
- entry point는 CLI argument에 의해 결정
- Path to entry file : /path/app.js
- Path to
package.json
:pkg
키워드는package.json
의bin
프로퍼티를 entry file로 사용 - Path to directory :
pkg
는package.json
에 설정된 특정 위치를 참조
Targets
- 특정 target machine들을 위한 실행파일 생성
- {nodeRange}-{platform}-{arch}
- ex) node12-win-x64
- 옵션을 설정하지 않으면,
linux, maxos, win
바이너리 모두 생성
Config
pkg
키워드는 소스코드를 분석하고,require
호출을 감지하여 dependencies를 실행파일에 추가- 하지만,
require()
의 매개변수로 non-literal이 쓰이거나, js 파일이 아닌(views, css 등) 것을 사용할 때는pkg
가 처리할 수 없음 - 따라서, scripts, assets 과 같은 프로퍼티를
package.json
에 직접 추가 pkg .
은 scripts, assets를 entry로 사용
"pkg": {
"scripts": "build/**/*.js",
"assets": "views/**/*"
}
Example
// package.json
"bin": "app.js",
"scripts": {
"build": "pkg ."
},
"pkg": {
"assets": ["views/**/*", "public/**/*"],
"targets": ["node12-win-x64"]
},
npm run build
로 실행하여 빌드
ref :
pkg
pkg로 Node.js 애플리케이션의 하나의 바이너리로 만들기
How to create an executable (.exe) file from JavaScript code (using Node.js)
Leave a comment