Hướng dẫn thực hành toàn diện về nw-builder: Giải pháp cuối cùng để xây dựng ứng dụng NW.js đa nền tảng
Địa chỉ dự án: https://gitcode.com/gh_mirrors/nwbu/nw-builder
Giới thiệu tổng quan
nw-builder là công cụ xây dựng phổ biến nhất trong hệ sinh thái NW.js, giải quyết ba vấn đề cốt lõi:
- Quản lý môi trường đa nền tảng
- Xử lý tương thích phụ thuộc
- Tối ưu hóa thứ tự tải tài nguyên
Bảng so sánh tính năng chính
| Chức năng |
Đặc điểm |
Ứng dụng |
| Xây dựng đa chế độ |
Hỗ trợ get/run/build |
Phát triển/Phát hành/Tải tài nguyên |
| Hỗ trợ đa nền tảng |
Linux(x64/arm64)/macOS(x64/arm64)/Windows(x86/x64) |
Phát hành đa nền tảng |
| Nâng cao khả năng truyền thông |
Tích hợp phiên bản FFmpeg cộng đồng |
Ứng dụng xử lý âm thanh/hình ảnh |
| Hệ thống cấu hình |
Cơ chế ghi đè ưu tiên (JSON>CLI>API) |
Yêu cầu tùy chỉnh dự án phức tạp |
| Tối ưu cache |
Cache tài nguyên thông minh |
Tăng tốc độ xây dựng lặp lại |
| Nén và ký tên |
Hỗ trợ ZIP/TAR và chữ ký mã nguồn |
Quy trình phát hành doanh nghiệp |
Hướng dẫn nhanh
Chuẩn bị môi trường
# Kiểm tra phiên bản Node hiện tại
node -v
# Kiểm tra phiên bản Node tương thích với NW.js (ví dụ v0.102.1)
curl -s https://nwjs.io/versions.json | jq '.versions["v0.102.1"].modules'
Cài đặt
| Phương pháp |
Lệnh |
Ứng dụng |
Ưu điểm |
| npm |
`npm i -D nw-builder` |
Dự án cục bộ |
Phân tách phiên bản |
| yarn |
`yarn add -D nw-builder` |
Dự án Yarn |
Cache phụ thuộc |
| Biên dịch từ mã nguồn |
`git clone https://gitcode.com/gh_mirrors/nwbu/nw-builder && cd nw-builder && npm install && npm link` |
Phát triển/Định chế |
Tính năng mới nhất |
Ví dụ xây dựng tối giản
mkdir demo-nw && cd demo-nw
npm init -y
echo '<h1>Xin chào NW.js</h1>' > index.html
Cấu hình package.json
{
"name": "demo-nw",
"version": "1.0.0",
"main": "index.html",
"scripts": {
"chay": "nwbuild --mode=run .",
"xaydung": "nwbuild --mode=build --platform=linux,win,osx --outDir=ketqua ."
},
"devDependencies": {
"nw-builder": "^4.15.0"
}
}
Các chế độ hoạt động
Chế độ get
import xaydung from 'nw-builder';
await xaydung({
mode: 'get',
version: '0.102.1',
flavor: 'sdk',
platform: 'osx',
arch: 'arm64',
downloadUrl: 'https://npm.taobao.org/mirrors/nwjs',
cacheDir: './nwjs-cache',
ffmpeg: true
});
Chế độ run
# CLI ví dụ: chạy với tham số gỡ lỗi
nwbuild --mode=run --argv="--remote-debugging-port=9222" ./src
Chế độ build
xaydung({
mode: 'build',
srcDir: './app',
outDir: './dist',
version: '0.102.1',
flavor: 'normal',
platform: ['linux', 'win', 'osx'],
arch: 'x64',
glob: true,
zip: 'tar',
managedManifest: true,
app: {
linux: {
name: 'AppCuaToi',
icon: './icons/icon.png',
categories: ['Tiện ích']
},
win: {
icon: './icons/icon.ico',
company: 'CongTyToi',
fileDescription: 'Ứng dụng NW.js'
},
osx: {
CFBundleIdentifier: 'com.congty.app',
NSHumanReadableCopyright: 'Bản quyền © 2025'
}
}
});
Hướng dẫn xây dựng đa nền tảng
Bảng so sánh cấu hình nền tảng
| Cấu hình |
Linux |
Windows |
macOS |
| Định dạng thực thi |
ELF nhị phân |
EXE |
.app |
| Định dạng biểu tượng |
PNG (nhiều kích thước) |
ICO (256x256) |
ICNS |
| Cấu hình siêu dữ liệu |
.desktop |
Thông tin phiên bản |
Info.plist |
| Cơ chế chữ ký |
GPG |
Authenticode |
Code Signing |
| Tùy chọn nén |
tar/gz |
zip |
dmg |
| Cấu hình đặc biệt |
categories, keywords |
languageCode, productVersion |
LSApplicationCategoryType, NSLocalNetworkUsageDescription |
Tính năng nâng cao
Tích hợp FFmpeg
xaydung({
mode: 'build',
ffmpeg: true,
});
Quản lý phụ thuộc
xaydung({
mode: 'build',
managedManifest: {
name: 'app-toi',
main: 'index.html',
dependencies: {
'lodash': '^4.17.0'
}
}
});
Chữ ký mã nguồn
Trên Windows
signtool sign /f mycert.pfx /p password /t http://timestamp.digicert.com ketqua/myapp.exe
Trên macOS
codesign --deep --force --sign "Developer ID Application: CongTyToi" ketqua/myapp.app
Tài nguyên hữu ích