我正在工作,其中将包含几个独立的文件夹,如下所示:
/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'
我已经弄清楚了使用tsconfig
编译TypeScript代码时如何保留文件夹结构,所以现在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/**/*"]
}
答案 0 :(得分:1)
NPM没有提供在NPM软件包中配置“模块根目录”之类的方法。因此,输出目录必须是程序包目录:
"outDir": "."