@jj-editor/installer
v1.19.9
Published
jik-ji editor installer
Readme
install 파일 생성 샘플 프로젝트
# 소스 폴더: demo/project 폴더 내용을 install 파일로 만듬
빌드 실행: npm run sample
# demo/project/package.json의 build.output 설정
빌드 결과: demo/project/dist디버깅
빌드 옵션 설정
preserveSource: 압축 소스 폴더 보존preserveArchive: 압축 파일 보존preserveScript: NSIS 스크립트 파일 보존
로그 출력 방법
- 환경 변수 설정 : DEBUG = *
- https://www.npmjs.com/package/debug
# 생성된 nsi 파일을 삭제하지 않음
"build": "build --preserveSource --preserveArchive --preserveScript --tasks win-x86 --mirror https://dl.nwjs.io/ .",
# 디버그 로그 출력
"build": "cross-env DEBUG=* build --preserveSource ...",- 콘솔창에서 nsi 파일 경로(temp 폴더)를 확인한 뒤
assets/scriptFileDebug.nsi에 복사HM NIS Edit프로그램에서 nsi 파일을 열고 컴파일 및 디버깅
샘플
{
"scripts": {
"build": "tsc --declaration",
"sample": "npm run build && node sample_installer.js --dir=./demo/project",
"sampleRun": "npm run build && node sample_installer.js --dir=./demo/project --run",
"jikji": "npm run build && node sample_installer.js --dir=./assets/jikji",
"코드사인 단위 테스트": "코드사인 인증서 적용.md 문서 참고--------------------------------------",
"codesign": "npm run build && node sample_codeSign.js --file=\"./demo/project/dist/testApp5-0.1.11 (win x86).exe\""
}
}sample
Program Files(x86)폴더에 nwJS가 설치되고AppData/Local폴더 아래에 child App (nwJS)이 별도로 설치되는 구조
jikji
Program Files(x86)폴더에는 간단한 launcher exe만 설치되고AppData/Local폴더 아래에 child App (nwJS)이 설치되는 구조
nwjs-builder-phoenix

A possible solution to build and package a ready for distribution NW.js app for Windows, macOS and Linux.
Why Bother?
We already had nw-builder, but it has made little progress on the way, and nwjs-builder has been hard to continue
due to personal and historic reasons.
electron-builder inspired me when I became an Electron user later, loose files excluding, various target formats, auto
updater, artifacts publishing and code signing, amazing!
Although NW.js has much lesser popularity than Electron, and is really troubled by historic headaches, let's have something modern.
Features
- Building for Windows, macOS and Linux
- Common:
zip,7z - Windows:
nsis,nsis7z - macOS: TODO
- Linux: TODO
- Common:
- Building for different platforms concurrently
- Configurable executable fields and icons for Windows and macOS
- Exclusion of loose files from
node_modules - Chrome App support
nwjs-ffmpeg-prebuiltintegration- Auto Updater
- TODO Rebuilding native modules
- TODO Code signing
- Ideas appreciated :)
Getting Started
Make sure your NW.js project has a valid
package.json(e.g. generated bynpm init), and have basic fields likename,descriptionandversionfilled.For apps destined for Mac, providing a
product_stringin thepackage.jsonwill allow the Helper app to be renamed for you.Install
nwjs-builder-phoenixas adevDependenciesof your NW.js project as follows:
# Optional wine for building for Windows on other platforms.
# The command may differ in different Linux distributions.
#sudo apt-get install wine
npm install nwjs-builder-phoenix --save-devBy installing it locally, build and run commands will be available in npm scripts. You can access option lists
via ./node_modules/.bin/{ build, run } --help.
DO NOT install it globally, as the command names are just too common.
- Add
buildproperties at the root of thepackage.json, for example:
// package.json
{
"build": {
"nwVersion": "0.14.7"
}
}This will specify the NW.js version we are using. See more in the following Options section.
- Add some helper npm scripts, for example:
// package.json
{
"scripts": {
// Deprecated. "dist": "build --win --mac --linux --x86 --x64 --mirror https://dl.nwjs.io/ .",
"dist": "build --tasks win-x86,win-x64,linux-x86,linux-x64,mac-x64 --mirror https://dl.nwjs.io/ .",
"start": "run --x86 --mirror https://dl.nwjs.io/ ."
}
}The above code snippet enables npm run dist and npm run start/npm start. The former builds for all major platforms
and both x86 and x64 arch, and the latter runs the project with x86 binaries, both with the specified version of NW.js
and use specified mirror to accelerate the download.
- Well done.
This should be the common use case, read the following Options section and FAQs if something is missing.
See also sample project and test cases for reference.
Options
Passing and managing commandline arguments can be painful. In nwjs-builder-phoenix, we configure via the build
property of the package.json of your NW.js project.
Also see all available options here.
Differences to nwjs-builder
nwjs-builder-phoenixqueriesversions.jsononly when a symbol likelts,stableorlatestis used to specify a version.nwjs-builder-phoenixusesrceditinstead ofnode-resourcehacker, thus it's up to you to create proper.icofiles with different sizes.nwjs-builder-phoenixsupports node.js 4.x and later versions only.nwjs-builder-phoenixwrites with TypeScript and benefits from strong typing and async/await functions.
Development
git clone https://github.com/evshiron/nwjs-builder-phoenix
cd nwjs-builder-phoenix
npm install
npm testBy the way, I use some custom strings in NSIS scripts which might not be fully translated, if anyone is interested in translating them into languages that aren't available, feel free to fork and send PRs.
Available Mirrors
If you have difficulties connecting to the official download source, you can specify a mirror via --mirror argument of
both build and run, or by setting NWJS_MIRROR environment variable. Environment variables
like HTTP_PROXY, HTTPS_PROXY and ALL_PROXY should be useful too.
- China Mainland
- https://npm.taobao.org/mirrors/nwjs/
- Singapore
- https://cnpmjs.org/mirrors/nwjs/
License
MIT.
