LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

Astra 横空出世,真的是 JS 脚本转换为 EXE 程序的未来吗?

admin
2025年6月22日 0:40 本文热度 33

为什么选择 Astra

Astra 可能是 npm 上最好的编译器,平均 exe 文件大小约为 70-80MB(当然也取决于代码),比大多数编译器都轻量。

当然,如果借助于 upx 可以将文件大小压缩到约 30MB,其旨在编译服务器(express、fastify)或命令行界面(commander),因此并非 Electron 的替代品。

Astra 的典型特性包括:

  • 编译 JavaScript/TypeScript 应用程序的新方法,使用的方法与 pkg 或 nexe 等其他编译器不同
  • 支持最新版本的 Node.js
  • Astra 由 esbuild 提供支持,可确保最快的编译速度
  • 支持编译基于 ESM 的应用程序,解决了 Node.js SEA 中的诸多限制
  • Astra 借助 signale、inquirer 和 chalk 等工具,提供卓越的开发者体验
  • 生成独立的可执行文件,包含所有依赖项的单个 .exe 或二进制文件
  • 支持创建开发者自己的 exe 文件,例如:修改生成的可执行文件的元数据(图标、名称、版本等)
  • 面向未来 ,使用值得信赖且不断发展的工具构建

值得一提的是,Astra 目前只能编译 Windows 应用程序,macOS 和 Linux 系统目前还在积极支持中。

目前 Astra 通过 MIT 协议开源,短短几周已经有超过 0.8k 的 star,是一个值得关注的前端开源项目。

如何使用 Astra

开发者可以借助于 yarn 或者 npm 快速上手:

# npmnpm i -g astra-cli# yarn (classic)yarn global add astra-cli# pnpmpnpm add -g astra-cli# for one project only# npmnpm i --save-dev astra-cli# yarnyarn add --dev astra-cli# pnpmpnpm add -D astra-cli

接着使用下面命令编译 JavaScript/TypeScript 项目:

astra build src/index.js

开发者还可以通过 config 中的 assets 字段来隐藏二进制文件中的部分资源,例如:

// astra.config.jsexport default {  assets: {    "path/in/binary.txt""path/to/asset.txt",  },};

接着可以通过下面的方式访问 assets:

import {getAssetAsBlob, getAsset, isSea} from "node:sea";import fs from "fs";    if (isSea()) {        // get asset as text        console.log(getAsset("file.txt""utf-8"));        // or        console.log(await getAssetAsBlob("file.txt").text());        // get asset as blob        const arrayBuffer = await getAssetAsBlob("file.png").arrayBuffer();        fs.writeFileSync("file.png"Buffer.from(arrayBuffer));    }})();

astra.config.js 中的配置也非常丰富而且都支持修改,例如:

export default {  outFile"dist/app.exe",  esbuild: {    // esbuild 可选配置  },  modifyMetadatatrue,  // modify metadata of the executable (useful if you have macOS and don't have wine installed)  exe: {    companyName"Your Company",    // 公司名称    productName"Your App",    // 产品名称    fileDescription"Your App Description",    // app 描述    productVersion"1.0.0",    // app 版本    fileVersion"1.0.0.0",    // 文件版本    icon"path/to/icon.ico",    //  app 图标 icon    copyright"Copyright © 2023 Your Company",    // 版权  },};

参考资料

https://github.com/astracompiler/cli

https://astra-js.netlify.app/cli/configuration/


阅读原文:原文链接


该文章在 2025/6/23 12:54:24 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2025 ClickSun All Rights Reserved