繁体   English   中英

NPM模块+ TypeScript最佳实践

[英]NPM Modules + TypeScript Best Practices

我想在TypeScript中编写一个npm模块。 有人可以向我推荐最佳实践指南,如何开始吗?

我的问题是:

  • Node.js不支持开箱即用的TypeScript,对吗? 那么,推荐的发布npm模块的方式是什么? 在文件夹/ ts / js中创建2个文件夹,并在package.json中引用js / index.js作为入口点。 还是使用某种运行时编译器并直接运行TypeScript文件? 还是不建议您在npm模块中发布任何TypeScript代码,然后将其编译为普通Javascript并在Git存储库中提供TypeScript源代码?

  • 建议的打字支持方式是什么? 我看到我可以在package.json中引用“键入文件”。 它们可以在线吗,我应该为他们提供npm模块还是应该完全不发布ts和dtd文件? 为它们安装types并提供types.json?

  • 如果我想为我的代码提供打字支持,推荐的方式是什么? 甚至我的模块也非常小巧(做一件事并正确执行),提供一些信息和自动完成支持可能很有用。 我仍然是TypeScript的新手,所以不确定执行此操作的最佳方法是什么。 我猜想写一个接口,并提供我的npm模块。 这些文件以后应该上传到DefinitelyTyped目录,还是仅对较大的库有意义?

我想在这里介绍如何使用当前的TypeScript和Node Version正确执行此操作,因为我发现的许多信息已经过时,涉及诸如autodts,tsd之类的东西。

我很高兴有人能帮助我。 我一知道方法是如何正确完成的,我就会制作一个文档,并在Github上为其他人提供这些信息。

干杯

第一个问题:是的,您必须先转换打字稿代码,然后才能发布npm软件包,但是通过确保在package.json中包含此代码,可以非常轻松地完成此操作:

  "scripts": {
    "prepublish": "tsc",
  }

构造文件的最佳实践是对ts文件使用src目录,然后对js文件使用根目录或其他目录(例如dist)。 您可以通过在tsconfig.json中定义“ outDir”来进行设置:

"compilerOptions": {
    [...]
    "outDir": "dist"
}

同样,这里接受的答案中的链接也帮助我解决了类似的问题: 用Typescript编写NPM模块

关于您在npm软件包中键入的问题:为了在当前的打字稿版本中提供键入,您无需在package.json中进行任何更改。 您可以仅将一个名为index.d.ts的文件添加到包的根目录下。 如果有人使用您的模块打字稿,则会在此处自动找到键入内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM