reference – 你能创建Typescript包吗?比如c#dlls
目前有没有包装打字稿文件的概念?
在尝试将纯javascript项目迁移到typescript时,我发现痛苦的一件事是引用,在某些情况下,我有复杂的对象,我不得不写几个引用来自所有地方的文件的引用语句. 部分原因在于我的项目布局,因为它是一个非常大且模块化的,所以我有一个这样的系统: - modules |- module1 |- models |- services |- controllers |- module2 |- models |- services |- controllers |- core |- models |- services |- data |- validation 还有更多,但是你明白了,现在每个模块都使用了核心,但是使用javascript我只是希望它在运行时加载,这仍然需要发生,但是因为打字稿的关注只是真的在编译时我想知道是否有一些概念将所有打字稿文件打包到某些打字稿库或其他东西,然后可以从项目中引用而不是让module1模型引用核心模型等. 目前的问题围绕目录结构,因为命名空间工作正常但如果我移动文件,我需要去每个引用移动文件的文件并更新它.这是令人厌倦的,而如果有某种包装的想法,那么我可以只引用它的输出,所以我不再担心文件系统和目录,我只是担心包和命名空间. 我认为很多这与C#的工作方式非常相似,你有一个有引用的项目.然后,该项目中的每个文件都可以使用引用中的任何类,因此代码公开由引用和名称空间管理. 我正在考虑让我的构建脚本只创建一个本地references.ts文件,然后遍历relavant模块中的每个* .ts文件并将它们放入一个大文件中: ///<reference path="core/models/some-model.ts"/> ///<reference path="core/models/some-model-2.ts"/> ///<reference path="core/services/some-service.ts"/> 如上所示,然后在所有需要核心文件的打字稿文件中使用此参考文件,因此这可以作为一种项目级引用,这可能意味着一些文件有他们不需要的引用,但它的编译时间所以我真的不在乎. .. 如果一个好方法已经存在,我不想亲自动手解决这个问题,希望有意义…… ==编辑== 我只是想在这里发布,因为我的场景节省了我很多时间,并且还减少了我的参考guff 99%,这不适用于那些没有构建脚本的人. 现在假设你有一个构建脚本,我采取了在我的脚本中执行一个步骤的路径,该步骤遍历根级目录(在本例中为module1,module2等)中的每个文件,然后它将输出local.references. ts进入该目录中的引用文件夹.然后我手动编写了一个external.references.ts,它在需要的地方引用外部描述符或其他模块引用. 在编写我的打字稿之后完成这部分之后,我基本上再将它指向根目录并告诉它将它们全部(* /.ts)编译成一个大的js文件(即module1.js).现在因为这将自动包含本地和外部引用,我不需要在各个clases中放置任何引用声明. 因此,提供本地和外部参考文件(local.reference.ts,external.reference.ts)的方式包含在文件的批量处理中,您只需要担心命名空间,这与C#的方式几乎相同操作. 但是,如果您没有能够执行本地引用生成和打字稿编译的构建脚本,那么给出的注释链接将是一个不错的选择. 解决方法
目前,没有正式的流程将源打字稿文件打包为您正在描述的预构建库.
目前有一些不同的解决方案,就像评论中链接的解决方案一样,它允许您将所有引用放入中央打字稿文件,然后从您的个别脚本中引用它们,或者您提出的相同排序方法方法,而不是手动编写它,你得到你的构建脚本为你生成引用,并获得编译过程来注入引用,而不是在每个文件中显式引用它们. 随着Typescript变得更加成熟,可能会有更多正式的方法来实现这一目标,但是目前只需要根据您使用Typescript进行开发的工具和appraoch,采取最佳解决方案. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |