我正在工作,其中将包含几个独立的文件夹,如下所示:
/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] 删除。
我来说两句