【问题标题】:getPersonalAccessTokenHandler is not a function when using azure-devops-node-api with ES2015 Modules将 azure-devops-node-api 与 ES2015 模块一起使用时,getPersonalAccessTokenHandler 不是函数
【发布时间】:2020-08-20 02:16:09
【问题描述】:

我正在尝试迁移一个挂钩到 Azure DevOps 的项目,以使用 ES6 模块加载和 Node 14.1

package.json 包含字段

"type": "module",

tsconfig.json 包含字段

"target": "ES2020",
"module": "es2020",
"moduleResolution": "node",

转译后的 JS 结果

import * as azdev from "azure-devops-node-api";
let orgUrl = process.env.API_URL;
let token = process.env.API_TOKEN;
let authHandler = azdev.getPersonalAccessTokenHandler(token);
let connection = new azdev.WebApi(orgUrl, authHandler);

这给出了错误

TypeError: azdev.getPersonalAccessTokenHandler is not a function
    at file:///Users/paul/repos/azure-devops-node-api/simple/_build/index.js:4:25
    at ModuleJob.run (internal/modules/esm/module_job.js:110:37)
    at async Loader.import (internal/modules/esm/loader.js:179:24)

我想我可能会在异步导入之前尝试使用该函数,但不知道如何解决这个问题。

【问题讨论】:

    标签: javascript node.js azure-devops es6-modules azure-devops-rest-api


    【解决方案1】:

    像这样更新你的 tsconfig.json 文件:

    {
    "compilerOptions": {
        "target": "es2020",
        "module": "commonjs",
        "moduleResolution": "node",
        "sourceMap": true
    },
    "files": [
        ...
    ]
    

    }

    结果:

    有样品:https://github.com/microsoft/azure-devops-node-api/blob/master/samples/tsconfig.json

    【讨论】:

    • 这使用 commonjs 进行模块加载。我正在尝试使用 ES6 模块。
    • @PaulHale 基于此线程:TypeScript tsconfig settings for Node.js 12?,看来您需要使用 commonjs 模块并设置指定目标。您可以将 es2020 用作带有简单示例的模块吗?如果有,请分享。
    • @PaulHale 您还有其他问题吗?
    猜你喜欢
    • 2017-10-17
    • 2017-08-29
    • 1970-01-01
    • 2019-10-12
    • 2019-10-17
    • 1970-01-01
    • 1970-01-01
    • 2012-03-05
    • 1970-01-01
    相关资源
    最近更新 更多