【问题标题】:Shall Angular libraries be written in typescript or compiled to javascriptAngular 库应该用 typescript 编写还是编译成 javascript
【发布时间】:2018-06-13 23:54:32
【问题描述】:

我正在开发一个库,它将通过 npm 作为 Angular 模块安装。该库是用打字稿编写的。在 Angular 5.0.0 之前,一切都像一个魅力,但是自从 5.0 用户开始收到以下错误:

./node_modules/mypackage/index.ts 中的错误模块构建失败: 错误:/node_modules/mypackage/index.ts 不属于 编译输出。请检查其他错误消息 详情。

作为一种解决方法,我可以在 tsconfig.json 中添加文件的包含路径。我的问题是我是否应该继续在打字稿中提供一个库,还是应该将其编译为 JS 并作为编译包发布,为什么?

【问题讨论】:

    标签: javascript angularjs node.js angular typescript


    【解决方案1】:

    将 typescript 代码发布到 npm 的最佳实践写在:https://www.typescriptlang.org/docs/handbook/declaration-files/publishing.html

    TL:DR - 将 js 与正确的类型定义一起发布。

    它将允许任何 js 消费者可以使用 lib,并且 ts 用户可以从类型中受益。在极少数情况下,您希望按原样交付 ts 代码,例如允许从用户级代码到节点模块的细粒度编译。

    【讨论】:

    • 我同意,我在 github.com 上有几个项目,您可以在其中看到我如何设置 typescript 以允许通过 npm 分发(例如github.com/wzr1337/rsiServer)。我将源映射与模块一起提供,因为我认为它使每个人的调试都变得更加容易。
    猜你喜欢
    • 2010-10-19
    • 1970-01-01
    • 2017-04-29
    • 2021-09-27
    • 1970-01-01
    • 2016-09-23
    • 2016-11-19
    • 1970-01-01
    • 2016-04-11
    相关资源
    最近更新 更多