TypeScript 支持导入Map和裸导入指定符,

qco9c6ql  于 5个月前  发布在  TypeScript
关注(0)|答案(2)|浏览(50)

建议

🔍 搜索词

  1. import maps
  2. bare import specifiers

✅ 可实现性检查清单

我的建议满足以下准则:

  • 这不会对现有的TypeScript/JavaScript代码造成破坏性的更改
  • 这不会改变现有JavaScript代码的运行时行为
  • 这可以在不根据表达式的类型发出不同的JS的情况下实现
  • 这不是一个运行时特性(例如库功能、JavaScript输出的非ECMAScript语法、JS的新语法糖等)
  • 这个特性将与TypeScript's Design Goals的其他部分保持一致。

⭐ 建议

由于import maps是Chrome(截至版本89)的一部分,Firefox也已经表示认可,因此如果Typescript能够采用这种跨包导入语法,那将是非常好的。
Import maps假设有一个index.html(例如)文件,其中包含一个script标签,例如:

<script type="importmap">
{
  "imports": {
    "moment": "/node_modules/moment/src/moment.js",
    "lodash": "/node_modules/lodash-es/lodash.js"
  }
}
</script>

我建议能够:

  1. 在tsconfig中指向包含此类importmap的文件,以及/或
  2. 仅支持基于package.json/package-lock.json的bare import specifiers,就像unpkg.com那样做。.

📃 激励示例

现在您可以无缝地引用跨包JS文件,而无需使用捆绑工具,这是基于浏览器标准实现的。
解决方法:
Typescript提供的路径解析不足且相当无助。
我找到的唯一相当可靠的解决方法是将仓库克隆到我项目的兄弟文件夹中。

j0pj023g

j0pj023g1#

我很想看到这个在Node.js中实现,然后TypeScript可以自动将其作为paths的替代方案。
编辑:哦,等一下,这篇博客文章声称它已经在Node.js中实现了?https://blog.spencersnyder.io/solving-the-long-relative-paths-problem-natively-in-node-js-6aeebc3a81bd。TypeScript能否通过导入键来解析它?

zlhcx6iw

zlhcx6iw2#

看起来,目前还需要在tsconfig.json中指定pathsMap,才能理解现在存在于package.json中的NodeJS包的#internal路径。

相关问题