【问题标题】:Associating npm package with local typescript definitions file将 npm 包与本地打字稿定义文件相关联
【发布时间】:2017-05-10 11:24:32
【问题描述】:

我正在使用一个 npm 包(比如 foo),在开发过程中,我想将此包与本地(与项目文件一起提交)打字稿定义文件相关联。我明确不打算将定义文件作为 npm 包发布,因为到目前为止它还不完整,并且仅涵盖了我实际使用的库的部分。

到目前为止,我已经尝试了以下方法:

将以下内容添加到 tsconfig.json

"typeRoots": [
  "./node_modules/@types",
  "./src/types"
],

并在./src/types/foo/index.d.ts 中添加了定义文件。然而,VSCode 和 typescript webpack-loader 都无法将来自 'foo' 的导入与定义文件中的导出关联起来。

处理此问题的正确方法是什么?

【问题讨论】:

    标签: typescript typescript2.0


    【解决方案1】:

    这几乎就是我所做的here

    为现有库创建了“我的类型” 按照@types
    的说明进行操作 并将其发布到“我的”Github。 而不是发布到@types

    终于

    npm i git+https://github.com/my/repo.git
    

    它最终会出现在 node_modules/@types/chosen-name
    正是 tsc 期望的位置

    我没有尝试,但我看不出为什么它不应该从其他来源工作

    npm i ../myrepo
    

    【讨论】:

    • 因为 package.json ... "name": "@types/whatever"
    • 是的,在发表我的评论后不久就意识到了这一点。这工作正常。
    【解决方案2】:

    在 tsconfig.json 的“文件”部分添加对类型定义的引用修复了该问题:

    {
        "compilerOptions": { ... },
        "files" : ["./src/types/foo.d.ts"]
    }
    

    Dan 提出的 solution 也有效,但需要更多工作 - 如果打算最终发布定义,这是理想的方法。

    【讨论】:

      猜你喜欢
      • 2016-09-09
      • 2018-10-22
      • 2017-02-20
      • 2014-05-03
      • 2019-04-05
      • 2016-04-10
      • 2018-03-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多