tsconfig.json-如何排除另一个tsconfig.json文件?

时间:2019-07-09 07:51:37

标签: typescript visual-studio-code vscode-settings vscode-extensions

我正在创建一个npm软件包,并具有类似于下面的文件夹结构:

project/
  - src/
    - index.tsx
    - package.json
    - config/
      - tsconfig.json
    - copy/
      - tsconfig.json
      - package.json
  - dist/
    - index.js
    - package.json
    - config/
      - tsconfig.json
    - copy/
      - tsconfig.json
      - package.json
  - tsconfig.json
  - package.json

project/是主要的开发文件夹。这就是提交给github的内容。

project/src/包含所有源开发文件。所有JavaScript文件均以Typescript编码。

project/dist/是发布到npm的分发文件夹,它只是project/src/的编译版本。 .ts和.tsx文件被编译为.js / .jsx,而.json文件只是从project/src/复制而没有任何更改。

project/src/config/project/dist/config/包含此项目本身未使用的默认tsconfig.json文件。其目的是通过project/src/copy/project/dist/copy/中的tsconfig.json文件扩展的。详情请见下文。

project/src/copy/project/dist/copy/是一旦安装npm软件包(通过postinstall)将被复制到用户根目录的文件。这是因为我正在创建的包本质上是一个模板,因此一旦用户安装了该包,它将在根目录中包含一个默认的package.json文件,该文件包含该文件的所有脚本,挂钩,包等。模板以及一个tsconfig.json文件,无非是:

{
  "extends": "./node_modules/myPackage/config/tsconfig.json"
}

这是在project/dist/config/tsconfig.json中扩展tsconfig.json文件。

我扩展它而不是简单地在project/dist/config/tsconfig.json的内容中进行编码的原因是,用户只需要运行npm update myPackage,并且如果tsconfig.json文件已更改,他们将自动运行使用新的配置设置。

否则,如果我仅将project/dist/config/tsconfig.json的内容复制到用户的根目录,则他们将无法获得更新的配置,因为postinstall仅对npm update不起作用{1}}。

我遇到的问题是我在npm installproject/src/copy/tsconfig.json中遇到类型错误,因为它所扩展的路径显然不存在。

我尝试将project/dist/copy/tsconfig.json添加到"exclude": ["src/copy/tsconfig.json", "dist/copy/tsconfig.json"],但是它不起作用。这些文件中仍显示类型错误。

那么我如何让Typescript不报告这两个特定文件的错误?

编辑:这似乎是VSCode问题。如果我在CLI中运行project/tsconfig.json,则它不会返回任何错误(我想是因为tsc不会检查.json文件)。

0 个答案:

没有答案