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

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

Thẻ: NW.js nw-builder toolchain đa nền tảng ứng dụng desktop

Đăng vào ngày 1 tháng 6 lúc 16:47