dan*_*nvk 6 typescript visual-studio-code
我希望提高编辑器交互速度以及tsc
运行 TypeScript 代码所需的时间。执行此操作的标准方法之一是使用项目参考。有许多报告表明团队通过采用这些方法获得了显着的加速。
我的代码中有一些自然中断,我可以将它们变成单独的项目:
root/
client/
src/
test/
server/
src/
test/
common/
src/
test/
Run Code Online (Sandbox Code Playgroud)
我已经noEmit
设置了tsconfig.json
,因为我的工作流程通常不需要tsc
发出.js
或.d.ts
文件。例如,我使用 Webpack 构建客户端代码,并使用ts-node
. 我对这两个 ( --transpileOnly
) 禁用了 TypeScript 错误检查,主要检查 VS Code 中的类型错误以及作为tsc
git pre-push hook 运行。
我的理解是 TypeScript 项目引用需要您发出.js
文件.d.ts
。规范的项目引用演示项目就是这样做的。它是否正确?tsserver
如果我采用项目引用而不发出 JavaScript,VS Code(通过 )会变得更快吗?也会tsc --noEmit
变得更快吗?是否有任何使用 TypeScript 项目的示例noEmit
,通过采用项目引用来显着加快速度?
\n\n我的理解是 TypeScript 项目引用要求您发出 .js 和 .d.ts 文件。规范的项目引用演示项目就是这样做的。它是否正确?
\n
我不认为项目引用功能需要发出 JS 文件才能工作。然而,在 3.7 版本之前,需要发出类型声明文件才能获得良好的 IDE 体验。
\n来自TypeScript 3.7 发行说明的“使用项目引用进行无构建编辑”部分:
\n\n\nTypeScript\xe2\x80\x99s 项目引用为我们提供了一种简单的方法来分解代码库,从而使我们能够更快地进行编译。不幸的是,编辑一个依赖项尚未构建(或其输出已过时)的项目意味着编辑体验将无法正常工作。
\n在 TypeScript 3.7 中,当打开具有依赖项的项目时,TypeScript 将自动使用源
\n\n.ts/.tsx
文件。这意味着使用项目引用的项目现在将看到改进的编辑体验,其中语义操作是最新的并且 \xe2\x80\x9c 只是工作\xe2\x80\x9d。您可以使用编译器选项禁用此行为,disableSourceOfProjectReferenceRedirect
这在处理此更改可能会影响编辑性能的大型项目时可能适用。
在v4.0之前,. 不支持增量构建noEmit
。请参阅v4.0 发行说明中有关“ --incremental
with --noEmit
”的部分:
\n\n\n
noEmit
TypeScript 4.0 允许我们在仍然利用编译的同时使用该标志incremental
。以前这是不允许的,因为incremental
需要发出.tsbuildinfo
文件;然而,实现更快的增量构建的用例对于所有用户来说足够重要。有关更多详细信息,您可以查看实现拉取请求。
\n
至于性能提升,
\n直接来自文档:
\n\n\n我们\xe2\x80\x99 还引入了一种新模式
\ntsc
,即--build
标志,它与项目引用协同工作,以实现更快的 TypeScript 构建。
TypeScript 团队经常致力于提高性能的更改。您可以在他们的网站上查看其余的重新发布说明,并且您会经常看到有关加速的提及。例如,请参阅3.9 发行说明,其中有一整节是关于加速改进的,以及v3.6 发行说明,其中有一节是关于“支持的 API --build
”--incremental
,允许 Gulp 和 Webpack 等第三方工具利用增量构建。
考虑到您正在使用 Webpack 和相关插件来进行实际构建并且您关心开发人员工具性能,请查看esbuild和Webpack 的 esbuild 加载器。
\n 归档时间: |
|
查看次数: |
2096 次 |
最近记录: |