Kai*_*ren 4 intellij-idea npm typescript package.json monorepo
我有一个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",
Run Code Online (Sandbox Code Playgroud)
该库将 TypeScript 代码构建到dist/
文件夹中以进行分发。源代码位于src/
.
我正在使用 Lerna 和 monorepos,并且我正在尝试获取另一个包/模块来按原样加载 TypeScript 代码:
import { someTypeScriptStuff } from '@test/core'
Run Code Online (Sandbox Code Playgroud)
但是,这不起作用。IntelliJ 和 TSLint 都抱怨缺少模块。如果我将main
字段的值更改package.json
为src/index.ts
,则它可以工作。
我不想dist
在开发的时候一直把TS代码编译成,因为很痛苦。
显然,我不能将 main 字段更改为src/index.ts
任何一个,因为它应该引用在节点/浏览器中按原样工作的普通 JavaScript。
是否有我可以使用的 TypeScript 特定字段,package.json
IntelliJ 和 TSLint 都可以使用它?那将是理想的。
我能想到的唯一解决方案是让main
字段指向 TS 代码,并更改我的构建过程,通过将main
字段交换回以dist/cjs/index.js
进行分发来改变打包的 NPM 模块的内容。我想避免这种情况。
我在根目录中解决了这个问题tsconfig.json
:
{
"compilerOptions": {
"baseUrl": "./packages",
"paths": {
"@test/*": ["./*/src"]
}
}
...
}
Run Code Online (Sandbox Code Playgroud)
然后我将它添加到每个包自己的tsconfig.json
:
{
"extends": "../../tsconfig.json",
"compilerOptions": {
"rootDir": "src"
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1632 次 |
最近记录: |