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

如何在JavaScript版GitHub Action中包含keytar.node额外资源?

解决方案:在JavaScript类型GitHub Action中包含keytar.node文件

当然可以通过纯JavaScript方式解决这个问题,核心是确保keytar.node原生模块文件被正确打包、提交并被Action运行环境读取,具体操作步骤如下:

1. 正确打包原生模块

使用GitHub官方推荐的@vercel/ncc工具打包你的Action代码,它会自动识别并包含Node.js原生模块(.node文件),执行以下命令:

ncc build src/index.js -o build

打包完成后,手动确认build目录下同时存在index.js和keytar.node文件。

2. 确保代码能正确加载模块

在index.js中通过相对路径或动态路径加载keytar.node,避免路径错误:

// 直接相对路径加载
const keytar = require('./keytar.node');

// 或用path模块确保路径正确(适用于复杂打包结构)
const path = require('path');
const keytar = require(path.join(__dirname, 'keytar.node'));

3. 提交并发布完整文件

  • 不要在.gitignore中忽略build/keytar.node,确保该文件被提交到GitHub仓库;
  • 发布Action版本时,确认build目录下的所有文件都被包含在发布的artifact中,避免遗漏原生模块文件。

额外注意事项

keytar作为原生模块,依赖运行环境的系统架构(如Linux x64),需确保打包keytar.node时的环境与GitHub Runner的环境一致。如果需要兼容多架构,可以打包对应版本的原生模块,并在代码中根据运行环境动态加载匹配的文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 19:18:38