从外部packabe中的嵌套文件夹导入TypeScript

伊万(Ivan Mushketyk)

我正在工作,其中将包含几个独立的文件夹,如下所示:

/src
  /a
    ClassA1.ts
    ClassA2.ts
    index.ts   # Exports ClassA1 and ClassA2
  /b
    ClassB1.ts
    ClassB2.ts
    index.ts   # Exports ClassB1 and ClassB2

我想创建这个包并将其发布到npm(假设它将被称为my-package),并允许其他项目像这样导入那些项目:

import { ClassA1 } from 'my-package/a'
import { ClassB1 } from 'my-package/b'

我已经弄清楚了在使用编译TypeScript代码时如何保留文件夹结构tsconfig,因此现在TypeScript编译的结果如下所示:

/dist
  /a
    ClassA1.d.ts
    ClassA2.d.ts
    index.d.ts
    ClassA1.js
    ClassA2.js
    index.js
  /b
    ClassB1.d.ts
    ClassB2.d.ts
    index.d.ts
    ClassB1.js
    ClassB2.js
    index.js

不幸的是,当我发布此程序包时,从该程序包导入类的唯一方法是这样的(请注意路径dist部分):

import { ClassA1 } from 'my-package/dist/a'

这与我想要的外观不同。

似乎我缺少一些简单的东西,但是我不知道如何解决导入路径。

这是我的tsconfig.json

{
  "compilerOptions": {
    "rootDir": "src",
    "target": "es6",
    "module": "commonjs",
    "strict": true,
    "noImplicitAny": true,
    "strictNullChecks": true,
    "alwaysStrict": true,
    "noUnusedLocals": true,
    "noUnusedParameters": true,
    "noImplicitReturns": true,
    "esModuleInterop": true,
    "declaration": true,
    "outDir": "./dist",
    "moduleResolution": "node"
  },
  "include": ["src/**/*"]
}

NPM没有提供在NPM软件包中配置“模块根目录”之类的方法。因此,输出目录必须是包目录:

"outDir": "."

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章