如何发布vscode扩展的声明文件(.d.ts)

时间:2020-10-01 08:48:16

标签: typescript npm declaration vscode-extensions .d.ts

我编写了一个vscode扩展,公开了供其他扩展使用的API(通过使activate()函数返回一个值)。

我想发布一个公开声明文件(npm的{​​{3}} .d.ts包,这将有助于扩展程序开发人员使用我的扩展程序。

我的问题是我不能重复使用扩展名package.json,因为它不允许包名中的@scoped失败)。

如果我创建专用的package.json以便将声明文件发布到npm,则最终会从扩展名{{1}中复制.d.ts文件及其所有依赖项} 目录。这种方法似乎有点麻烦。

我找不到描述执行此操作的正确方法的文档:将vscode扩展声明文件发布到npm(是否有范围)。

执行此操作的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

这就是我最终要做的:

  1. 我在扩展程序的文件夹旁边创建了另一个不包含源代码的文件夹。
  2. 我在其中放置了另一个package.json
    1. 为了清楚起见,我将包裹的范围放在name属性中,并在其后缀了-types
    2. 我创建了一个copy npm脚本,该脚本从扩展程序文件夹的out文件夹中复制了工件。该脚本使用ncp获得跨平台支持。
    3. 我在@types/vscode属性中添加了dependencies(不是publishing declaration files中提到的devDependencies),因为我的.d.ts文件包含对{{1 }}。
  3. 我创建了一个vscode文件来重新包含.npmignore文件中排除的out文件夹(使用否定符:!out)。
  4. 我需要从.gitignore文件夹中排除.js个文件,以避免与缺少传递依存关系相关的错误。我本可以创建另一个out文件,该文件仅发出tsconfig.json个文件(使用emitDeclarationOnly),但最终使用.d.ts来做到这一点。

以上对我有用,但必须有更好的方法,对吗?