在 Ubuntu 上用 JavaScript / Node.js 打包“应用”,要先明确你指的是哪种类型的应用,不同场景打包方式差别很大。下面按常见情况给你梳理:
如果你是写了一个 Node.js 程序,想在没有 Node 环境的 Ubuntu 上运行:
pkg(最常用)npm install -g pkg
pkg index.js --targets node18-linux-x64 -o myapp
生成:
myapp (Linux 可执行文件)
运行:
./myapp
✅ 优点:简单
❌ 缺点:体积大,兼容性一般
nexenpm install -g nexe
nexe index.js -o myapp
pm2 + systemd(不打包,只部署)适合服务器长期运行:
pm2 start index.js
pm2 startup
npm run build
生成:
dist/
npm install electron --save-dev
package.json:
{
"main": "main.js",
"scripts": {
"start": "electron .",
"pack": "electron-builder --linux"
}
}
安装打包工具:
npm install electron-builder --save-dev
打包:
npm run pack
生成:
dist/
├── app.deb
├── app.AppImage
如果你用 Electron / Node 应用:
electron-builder --linux deb
安装:
sudo dpkg -i app.deb
FROM node:18
WORKDIR /app
COPY . .
RUN npm install
CMD ["node", "index.js"]
docker build -t myjsapp .
docker run -d myjsapp
| 场景 | 推荐方案 |
|---|---|
| 命令行工具 | pkg |
| 服务端程序 | pm2 / Docker |
| 前端网页 | build + Nginx |
| 桌面应用 | Electron |
| Ubuntu 安装包 | electron-builder deb |
如果你能告诉我:
我可以直接给你一套 具体命令 + 示例。