【问题标题】:Importing scoped npm modules without scope name in TypeScript在 TypeScript 中导入没有作用域名称的作用域 npm 模块
【发布时间】:2016-07-13 19:32:11
【问题描述】:

我们有一些使用 npmjs 的私有仓库的私有 NPM 包。假设

  • 范围名称:@scope
  • 私有包名称为:private-package

当我们使用安装这个 NPM 包时 npm install @scope/private-package

安装到:.node_modules/@scope/private-package

在 VSCode 中,要从这个包中导入一些东西,我们需要做 import {SomeThing} from '@scope/private-package'

TypeScript 配置中有什么可以重新映射的吗 @scope/private-packageprivate-package 这样我们就可以使用 like import {SomeThing} from 'private-package' 而不是添加@scope

【问题讨论】:

    标签: typescript npm node-modules


    【解决方案1】:

    您可以为此使用 NPM 别名功能(从 6.9 开始)。

    在你的情况下:

    npm i private-package@npm:@scope/private-package
    

    会导致软件包被安装在node_modules/private-package 并且您的工具将能够相应地解决它

    How do I install a package with npm with a different/custom module name中查看更多详细信息

    【讨论】:

      【解决方案2】:

      您可以为此使用 tsconfig 的路径映射功能。在“compilerOptions”部分中,添加一个“paths”部分,其中包含每个路径映射的条目。例如,在您的情况下:

      {
        "compilerOptions": {
          ...
          "paths": {
            "private-package": ["@scope/private-package"]
          }
        }
      }
      

      请注意,如果您使用捆绑器,它不会知道此映射,您可能还需要对其进行配置。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-10-18
        • 1970-01-01
        • 2019-07-24
        • 2020-07-08
        • 2020-07-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多