bin*_*hex 3 javascript node.js npm typescript 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 模块一起提供。这些文件应该稍后上传到绝对类型目录还是仅对较大的库有意义?
我很想知道如何使用当前的 TypeScript 和 Node 版本正确地做到这一点,因为我发现的很多信息都已经过时了,比如 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 的文件添加到包的根级别。如果有人使用你的模块打字稿会自动在那里找到打字。
| 归档时间: | 
 | 
| 查看次数: | 2134 次 | 
| 最近记录: |