@exodus/stasis

中文文档
1.0.0-rc.1发布于 2026/11/13MITTypeScriptES Module近 30 天下载 2788

文件级别源包和锁文件

中文使用文档
文档目录4 节
  1. 为什么是单独的捆绑格式?
  2. 图标
  3. 运行时间
  4. 许可证

@exodus/stasis

可分析源代码捆绑了分辨率+细纹锁文件.

Node.js esbuild metro rollup webpack

锁文件和捆绑只包含实际内容 使用过的。 。 。 .
通常比生产重点小约10倍 node_modules 安装.

执行这些让你把自动代码扫描和警报 集中在重要的代码上, 并让分析导入图了解.

理想工作流程: 创建捆绑 - > 分析 - > 船舶 确切的捆绑 生产.

Lockfile可以以可读形式证明捆绑,但这并不需要 - 捆绑本身可以是证明.

锁定文件套装
stasis.lock.jsonstasis.code.br
每个文件内容完整性和导入图包含每个文件的内容( 来源) 和导入图
人可读压缩
仅从磁盘读取文件装入或声明(可作为锁定文件)
模式 : add, (中文(简体) ), replace, (中文(简体) ), frozen, (中文(简体) ), ignore模式 : load, (中文(简体) ), add, (中文(简体) ), replace, (中文(简体) ), frozen, (中文(简体) ), ignore

锁文件与捆绑的主要区别在于,锁文件包含整齐性,而捆绑包含全部内容.
见 文件格式。 。 。 .

两者均可在全程运行(默认)或仅在 node_modules 范围.

为什么是单独的捆绑格式?

静态JS 捆绑工来源图东南亚源 + 道克 柏油球集装箱
可运行✅✅❌✅✅✅
包含原始来源✅❌✅❌✅✅
来源匹配运行时间✅➖++ 数据可以错误报告➖✅✅
依赖性版本✅❌❌❌✅✅
导入边缘✅❌❌❌隐性隐性
限制到相关的代码✅✅✅✅❌❌

Lockfiles (npm/pnpm/etc) 未被提及:它们与"tarball"一栏相类似,但也需要网络,安装步骤而并非自成一体.

图标

命令它会做什么
stasis run --lock=add app.js仅构建一个锁文件
stasis run --lock=frozen app.js对照锁定文件校验磁盘
stasis run --bundle=add app.js建立一个捆绑
stasis run --bundle=frozen app.js单独对照捆绑验证磁盘( 自试)
stasis run --bundle=load app.js独自从捆绑中跑出
stasis run --lock=add --bundle=add app.js建立锁文件并捆绑在一起
stasis run --lock=frozen --bundle=load app.js从捆绑中运行, 对照锁文件校验
stasis run --lock=add --bundle=add --mock app.js没有应用程序的副作用( network, fs write) 构建
stasis run --lock=add --child-process app.js还证明装入了儿童工序的模块(如大都会改造工人)
stasis run --bundle=add --fs=sync app.js构建一个同时抓取同步的捆绑 fs.readFileSync编号 :readdirSync 读取
stasis run --lock=add --import=./instrument.mjs app.js也加载预装模块; 其自己的图为跑道基础设施, 未验证
stasis bundle src/index.js静地建立捆绑, 不执行
stasis bundle --add src/worker.js将更多条目合并到现有的捆绑中
stasis bundle --conditions=react-native,browser app.js静态捆绑外加 exports编号 :imports 解析条件
stasis bundle --mainFields=react-native,browser,main app.js静态地捆绑纪念遗产包 mainFields
stasis bundle --metro --platforms=ios,android app.js静态捆绑 Metro解决的方式,所有平台同时
stasis bundle --typescript src/index.ts静态捆绑 TS 源, 解析 ./x.js 进口到 ./x.ts 像tsc一样
stasis add src assets将文件添加到工程的捆绑中, 没有依赖分辨率
stasis github-bundle --github=owner/name --sha=<commit> src/index.js静态捆绑一个 GitHub 重播到一个任务, 没有安装
stasis build --output=out.js app.stasis.code.br [entry]重建一个可运行的 JS 包 与 esbuilt , 遵循 捆绑 记录的导入图 准确
stasis build --output=out.js stasis.lock.json [entry]同样,读取 + 从磁盘校验源对锁定文件
stasis build --platform=hermes --metro=ios --assets-dest=dist --output=main.js app.stasis.code.br构建一个 --metro 像Metro那样捆绑到一个平台:它的 .ios 文件、 作为 Metro 资产模块的资产、 复制出的文件
stasis extract --lock=add app.stasis.code.br解开捆绑回到源 +a stasis.lock.json
stasis diff --stat a.lock.json b.stasis.code.br总结两个锁文件/捆绑之间的模块/文件差异
stasis prune修饰 node_modules 到锁文件, 验证其他文件
stasis audit stasis.lock.json报告锁定文件或捆绑依赖性的建议
stasis audit --why app.stasis.code.br同样,将每个标记的软件包拉入的导入链
stasis audit同样的,对于捆绑 stasis bundle 将建造 stasis.config.json是条目,不用写
stasis validate app.stasis.code.br检查一个捆绑的自有代码与它的寄存器和它的依赖关系与它们公布的软件包相对应, 并按其锁文件
stasis sbom --format=spdx stasis.lock.json导出一个锁文件或捆绑的 SPDX SBOM
stasis sbom --format=cyclonedx app.stasis.code.br导出 CyproneDX SBOM 用于锁定文件或捆绑

每个命令的选项都记录在 医生/数字 : run, (中文(简体) ), bundle (和 add, (中文(简体) ), github-bundle, (中文(简体) ), build, (中文(简体) ), extract, (中文(简体) ), diff, (中文(简体) ), prune, (中文(简体) ), audit, (中文(简体) ), validate, (中文(简体) ), sbom。 。 。 . stasis bundle 并捆绑固态、PHP、Bash、Rust和TEAL来源,参见 文件格式。 。 。 .

运行时间

零依赖性 @exodus/stasis-core CLI提供 run, (中文(简体) ), add, (中文(简体) ), extract 财务报告和审定财务报表 prune 仅命令.
捆绑插件居住于 @exodus/stasis-plugins。 。 。 .

许可证

麻省理工学院

版本与发布记录

@exodus/stasis 共发布 22 个版本,首次发布于 2026/05/19;过去 12 个月发布了 22 个版本。

版本发布日期距今
1.0.0-rc.1latest2026/11/131 天前
1.0.0-rc.02026/11/121 天前
1.0.0-beta.172026/11/121 天前
1.0.0-beta.162026/11/122 天前
1.0.0-beta.152026/11/0410 天前
1.0.0-beta.142026/11/0113 天前

关于 @exodus/stasis 的常见问题

@exodus/stasis 是什么?

文件级别源包和锁文件

如何安装 @exodus/stasis?

在项目目录运行 npm install @exodus/stasis,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 stasis,可以用 npx stasis 直接运行。

@exodus/stasis 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@exodus/stasis 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@exodus/stasis 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=24.14.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@exodus/stasis 可以商用吗?

@exodus/stasis 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@exodus/stasis 的下载量有多少?

根据 npm 官方下载统计,@exodus/stasis 在 2026/10/14 – 2026/11/12 这 30 天内被下载 2,788 次,日均约 93 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@exodus/stasis 还在维护吗?

最新版本 1.0.0-rc.1 发布于 2026/11/13(1 天前);至今共发布 22 个版本,其中过去 12 个月发布了 22 个;首次发布于 2026/05/19。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。