如何使用TypeScript

时间:2019-06-09 15:15:09

标签: typescript intellij-idea npm 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",

该库将TypeScript代码构建到dist/文件夹中以进行分发。源代码位于src/中。

我正在使用Lerna和monorepos,并且试图获取另一个程序包/模块来按原样加载TypeScript代码:

import { someTypeScriptStuff } from '@test/core'

但是,这不起作用。 IntelliJ和TSLint都抱怨缺少模块。如果我将mainpackage.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进行分发。我想避免这种情况。

1 个答案:

答案 0 :(得分:1)

我在根tsconfig.json中对此进行了解决:

{
  "compilerOptions": {
    "baseUrl": "./packages",
    "paths": {
      "@test/*": ["./*/src"]
    }
  }
  ...
}

然后我将其添加到每个软件包自己的tsconfig.json

{
  "extends": "../../tsconfig.json",
  "compilerOptions": {
    "rootDir": "src"
  }
}