NPM模块+ TypeScript最佳实践

时间:2016-06-05 07:38:42

标签: javascript node.js typescript npm typescript1.8

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

我的问题是:

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

  • 键入支持的推荐方法是什么?我看到我可以在我的package.json中引用打字文件。他们可以在线,我应该提供npm模块,还是ts和dtd文件根本不发布?用typings安装它们并提供typings.json?

  • 如果我想为我的代码提供打字支持,建议的方法是什么?即使我的模块非常小而且简单(做一件事并且做得对)提供一些信息和自动完成支持可能很有用。我还是TypeScript的新手,所以不确定最好的方法是什么。我猜想编写一个接口并提供我的npm模块。这些文件以后是否应该上传到DefinitelyTyped目录,还是仅针对较大的库感知?

我很想知道如何使用当前的TypeScript和Node Version正确地完成它,因为我发现很多信息都是过时的,参考了autodts,tsd等等。

如果有人可以帮助我,我很高兴。我很快就知道如何以正确的方式完成文档并在Github上为其他人提供这些信息。

干杯

1 个答案:

答案 0 :(得分:4)

关于你的第一个问题:是的,你必须在发布你的npm包之前转换打字稿代码,但是你可以通过确保在package.json中有这个来轻松地完成这个:

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

结构化文件的最佳做法是使用例如ts文件的src目录,然后是js文件的根级别或另一个目录(例如dist)。您可以通过在tsconfig.json中定义“outDir”来设置它:

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

此处接受的答案中的链接也帮助我提出了类似的问题:Writing NPM modules in Typescript

关于你在npm包中输入的问题:为了提供当前打字稿版本的输入,你不需要在package.json中更改任何内容。您只需将名为index.d.ts的文件添加到程序包的根级别即可。如果有人使用你的模块打字稿会自动找到那里的打字。