You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将ES6格式的Node.js项目打包为可执行文件(.exe)?

解决ES6 Node.js代码打包为Windows .exe的方案

方法1:先转译ES6为CommonJS再打包

这是最稳妥的方案,先将ES6代码(使用import/export)转成Node.js原生支持的CommonJS格式(require/module.exports),再用nexe或pkg打包。

用esbuild快速转译(推荐)

esbuild是极快的JS转译工具,无需复杂配置:

  1. 安装esbuild:
    npm install esbuild --save-dev
    
  2. 执行转译命令(假设入口文件为src/index.js):
    npx esbuild src/index.js --bundle --platform=node --format=cjs --outfile=dist/index.js
    
    参数说明:
    • --bundle:打包所有依赖到单个文件
    • --platform=node:针对Node.js环境打包
    • --format=cjs:输出CommonJS格式
  3. 用pkg打包转译后的文件:
    npx pkg dist/index.js --targets node18-win-x64 --output myapp.exe
    

用Babel转译(适合复杂代码场景)

如果代码用到较多ES6+特性,esbuild处理有问题时可选用Babel:

  1. 安装依赖:
    npm install @babel/core @babel/cli @babel/preset-env --save-dev
    
  2. 在项目根目录创建babel.config.json:
    {
      "presets": [
        ["@babel/preset-env", {
          "targets": { "node": "current" }
        }]
      ]
    }
    
  3. 转译代码:
    npx babel src --out-dir dist
    
  4. 用nexe或pkg打包dist目录下的入口文件即可。

方法2:使用支持ES模块的打包工具

部分工具已原生支持ES模块,无需提前转译:

更新pkg到最新版本

pkg从v5.x开始支持ES模块,确保使用最新版:

  1. 更新pkg:
    npm install pkg@latest --save-dev
    
  2. 在package.json中添加"type": "module"(声明项目使用ES模块):
    {
      "type": "module",
      "main": "src/index.js",
      "scripts": {
        "pkg": "pkg . --targets node18-win-x64 --output myapp.exe"
      }
    }
    
  3. 执行打包命令:
    npm run pkg
    

使用ncc打包后转exe

ncc是webpack官方的Node.js代码打包工具,支持ES模块,打包后生成单个可执行的CommonJS文件:

  1. 安装ncc:
    npm install @vercel/ncc --save-dev
    
  2. 打包代码:
    npx ncc build src/index.js -o dist
    
  3. 用pkg打包dist目录下的index.js即可得到exe文件。

方法3:使用Electron(适合GUI应用)

如果项目是GUI应用,Electron可直接打包ES6代码为Windows exe,无需额外转译:

  1. 安装Electron和打包工具:
    npm install electron electron-builder --save-dev
    
  2. 配置package.json(示例):
    {
      "type": "module",
      "main": "src/main.js",
      "scripts": {
        "build": "electron-builder --win"
      },
      "build": {
        "appId": "com.yourcompany.myapp",
        "win": {
          "target": "nsis"
        }
      }
    }
    
  3. 执行打包命令:
    npm run build
    
    打包后的exe会生成在dist目录中。

内容的提问来源于stack exchange,提问作者Darkness

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 04:45:10