TypeScript 请尊重Node的--loader,以便在VS Code中获得智能感知功能,

dw1jzc5e  于 6个月前  发布在  TypeScript
关注(0)|答案(2)|浏览(43)

我希望VS Code能够使用自定义的Node.js加载器进行Intellisense。
例如,如果我从代码中移除了 .mjs 扩展,我就无法看到 mime-types.mjs 的Intellisense。但是我的自定义加载器并不需要这个扩展。
以下是我期望看到的:(在导入时没有 .mjs 扩展)

我可以在Intellisense下拉菜单中看到 .html 的引用。

但实际上我看到的是:

我认为现在Node.js加载器正在经历规范化过程——走出实验阶段,对于VS Code来说,现在是开始尊重加载器的时候了。
也许这可以放在 .vscode/settings.json 中:

// .vscode/settings.json
{
    "loader": "./loader.mjs"
}

为更复杂的项目/monorepo等提供不同的加载器非常重要:

// .vscode/settings.json
{
    "loader": {
        "./app-one": "./loaders/my-custom-loader-1.mjs",
        "./app-two": "./loaders/my-custom-loader-2.mjs",
        "./app-three": "react-loader"  // <-- Uses a package as a loader
    }
}
uubf1zoe

uubf1zoe1#

我认为我们无法支持任意加载器——在这里运行不受信任的代码是一种安全边界违规。
假设加载器具有一些相当标准的行为,您可能可以在jsconfig文件中使用https://www.typescriptlang.org/tsconfig#customConditions。这个加载器实际上做了什么?

pgpifvop

pgpifvop2#

加载器执行以下操作:

  1. 解决跨 http://file:// 的无扩展名的 .mjs 文件导入
  2. 将目录解析为包含它们的 index.mjs 文件,跨 http://file://
    如果加载器从已加载的项目中运行,特别是在用户已经选择“信任作者”或“信任工作区”之后,是否仍应将加载器视为不受信任?

相关问题