typescriptServices.js是提供语言服务的全局文件;然而,应注意:1.我相信大多数相同的功能都导出到typescript.js和tsserverlibrary.js中,只是在CommonJS中。1.无论如何,大多数语言服务消费者现在只是在使用tsserver。是否需要继续将此文件发送到npm?也许这些查询可以给予我们了解谁在使用它
typescriptServices.js
typescript.js
tsserverlibrary.js
qzwqbdag1#
我相信大多数相同的功能都导出到了typescript.js和tsserverlibrary.js中,只是在CommonJS中。这两个文件是相同的,除了它们指向不同的源Map(它们是相同的,但在不同的路径,所以仍然是冗余的)。现在,我们利用它是一个单一的文件这一事实,通过名称空间合并来动态选择通过module.exports(https://github.com/microsoft/TypeScript/blob/main/src/services/exportAsModule.ts)或全局(https://github.com/microsoft/TypeScript/blob/main/src/services/globalThisShim.ts)导出。当前使用typescriptServices.js的任何人都应该能够使用typescript.js,并且不会看到任何更改。然而,在模块后,这两个链接的文件可能不会工作,尽管我可以将它们推到顶级文件中。
module.exports
20jt8wwn2#
这两个文件完全相同FWIW,我很久以前就注意到了这一点,并感到非常困惑。我最终决定typescript.js一定是API消费者的“规范”文件,并使用了它,而包含不同名称的重复文件要么是意外,或者节点包的一些内部实现细节,并远离它。我从来没有猜到typescriptServices.js是注定要成为规范的一个!
ljsrvy3e3#
回顾Gulpfile,它似乎已经这样至少6年了。我认为我们完全可以删除这个文件,并告诉人们使用typescript.js,因为它们是相同的,虽然如果我们认为这是一个突破性的变化,那么可能要等到5.0,在这种情况下,它有点没有实际意义,因为我真的希望在那个版本中将TS转换为模块。这些文件除了导出行之外都是相同的,这意味着我可以(暂时)完全忽略TS的模块版本。要澄清“有点无意义”,只有当我们不捆绑。我们仍然可能!
aiazj4mn4#
因为我已经在我的模块分支上删除了typescriptServices(使构建更简单),所以继续进行。我做了一些研究,看起来typescriptServices是VS Code和monaco使用的主文件。后者很有趣,因为看起来他们使用了AMD Package 器(同样的事情也反映在我们的repo中技术上损坏且未使用的createPlaygroundBuild脚本中),所以如果旧的路径不存在,他们可能需要一些逻辑来选择正确的路径。我们的API测试还假设类型来自typescriptServices,通过一种黑客的方式获取,但是我已经不得不为模块分支重做了。
typescriptServices
createPlaygroundBuild
4条答案
按热度按时间qzwqbdag1#
我相信大多数相同的功能都导出到了typescript.js和tsserverlibrary.js中,只是在CommonJS中。
这两个文件是相同的,除了它们指向不同的源Map(它们是相同的,但在不同的路径,所以仍然是冗余的)。现在,我们利用它是一个单一的文件这一事实,通过名称空间合并来动态选择通过
module.exports
(https://github.com/microsoft/TypeScript/blob/main/src/services/exportAsModule.ts)或全局(https://github.com/microsoft/TypeScript/blob/main/src/services/globalThisShim.ts)导出。当前使用
typescriptServices.js
的任何人都应该能够使用typescript.js
,并且不会看到任何更改。然而,在模块后,这两个链接的文件可能不会工作,尽管我可以将它们推到顶级文件中。
20jt8wwn2#
这两个文件完全相同
FWIW,我很久以前就注意到了这一点,并感到非常困惑。我最终决定
typescript.js
一定是API消费者的“规范”文件,并使用了它,而包含不同名称的重复文件要么是意外,或者节点包的一些内部实现细节,并远离它。我从来没有猜到typescriptServices.js
是注定要成为规范的一个!ljsrvy3e3#
回顾Gulpfile,它似乎已经这样至少6年了。
我认为我们完全可以删除这个文件,并告诉人们使用
typescript.js
,因为它们是相同的,虽然如果我们认为这是一个突破性的变化,那么可能要等到5.0,在这种情况下,它有点没有实际意义,因为我真的希望在那个版本中将TS转换为模块。这些文件除了导出行之外都是相同的,这意味着我可以(暂时)完全忽略TS的模块版本。要澄清“有点无意义”,只有当我们不捆绑。我们仍然可能!
aiazj4mn4#
因为我已经在我的模块分支上删除了
typescriptServices
(使构建更简单),所以继续进行。我做了一些研究,看起来
typescriptServices
是VS Code和monaco使用的主文件。后者很有趣,因为看起来他们使用了AMD Package 器(同样的事情也反映在我们的repo中技术上损坏且未使用的createPlaygroundBuild
脚本中),所以如果旧的路径不存在,他们可能需要一些逻辑来选择正确的路径。我们的API测试还假设类型来自
typescriptServices
,通过一种黑客的方式获取,但是我已经不得不为模块分支重做了。