我有一个core
库,其中包含package.json
中的以下内容:
"main": "dist/cjs/index.js",
"module": "dist/esm/index.js",
"es2015": "dist/es2015/index.js",
"types": "dist/es2015/index.d.ts",
"typings": "dist/es2015/index.d.ts",
该库将TypeScript代码构建到dist/
文件夹中以进行分发。源代码位于src/
中。
我正在使用Lerna和monorepos,并且试图获取另一个程序包/模块来按原样加载TypeScript代码:
import { someTypeScriptStuff } from '@test/core'
但是,这不起作用。 IntelliJ和TSLint都抱怨缺少模块。如果我将main
中package.json
字段的值更改为src/index.ts
,则它可以工作。
我不想在开发过程中一直将TS代码编译到dist
中,因为这很痛苦。
很显然,我也不能将main字段更改为src/index.ts
,因为它应该引用在node /浏览器中按原样工作的普通JavaScript。
在package.json
中是否可以使用IntelliJ和TSLint都可以使用的TypeScript专用字段? 那将是理想的。
我能想到的唯一解决方案是,将main
字段换回原来的位置,使main
字段指向TS代码,并更改构建过程以更改打包的NPM模块的内容。 dist/cjs/index.js
进行分发。我想避免这种情况。
答案 0 :(得分:1)
我在根tsconfig.json
中对此进行了解决:
{
"compilerOptions": {
"baseUrl": "./packages",
"paths": {
"@test/*": ["./*/src"]
}
}
...
}
然后我将其添加到每个软件包自己的tsconfig.json
:
{
"extends": "../../tsconfig.json",
"compilerOptions": {
"rootDir": "src"
}
}