使用Deno调用Jira REST API时反复遭遇同类错误求助
Deno 连接 Jira REST API 失败(jira.js 库兼容问题解决)
问题重现
尝试用 Deno 结合 jira.js 库连接 Jira REST API,无论本地安装 node_modules 导入还是直接用 Deno 第三方库链接,均报错,代码及错误信息如下:
错误截图

原始代码
//import { Version2Client } from "./node_modules/jira.js/src/index.ts"; import * as jira from "https://deno.land/x/jira@v2.10.4/src/index.ts"; const client = new Version2Client({ host: 'https://FFFFFF.atlassian.net', authentication: { basic: { email: 'FFFFFFF@gmail.com', apiToken: 'FFFFFFFF', }, }, }); async function main() { const projects = await client.projects.getAllProjects(); console.log(projects); } main();
解决方法
1. 修正代码中的导入引用错误
你当前代码的核心问题之一是:导入 * as jira 后,未通过 jira 对象访问 Version2Client,直接全局使用导致报错。修改代码如下:
import * as jira from "https://deno.land/x/jira@v2.10.4/src/index.ts"; // 从 jira 模块中获取 Version2Client const client = new jira.Version2Client({ host: 'https://FFFFFF.atlassian.net', authentication: { basic: { email: 'FFFFFFF@gmail.com', apiToken: 'FFFFFFFF', }, }, }); async function main() { const projects = await client.projects.getAllProjects(); console.log(projects); } main();
2. 处理 Node.js 库的 Deno 兼容性
jira.js 是为 Node.js 设计的库,直接在 Deno 中使用会依赖 Node.js 内置模块(如 http、https),需要配置兼容:
- 在项目根目录创建
deno.json文件,添加 Node 模块映射:{ "compilerOptions": { "paths": { "http": ["node:http"], "https": ["node:https"], "url": ["node:url"], "util": ["node:util"] } }, "nodeModulesDir": true } - 运行代码时必须添加必要权限:
deno run --allow-net --allow-read --allow-env your-file.ts
3. 改用 Deno 原生支持的 Jira 库
如果不想处理兼容性问题,推荐使用原生支持 Deno 的 Jira 客户端库,比如 deno-jira:
import { Jira } from "https://deno.land/x/jira/mod.ts"; const jira = new Jira({ baseUrl: "https://FFFFFF.atlassian.net", email: "FFFFFFF@gmail.com", apiToken: "FFFFFFFF", }); async function main() { const projects = await jira.getProjects(); console.log(projects); } main();
内容的提问来源于stack exchange,提问作者Ariel H.
相关产品推荐
相关产品推荐

