Typescript-如何仅从一个文件夹进行编译

时间:2019-06-28 01:25:22

标签: typescript

我有一个与此类似的文件夹结构(数字表示深度):

1. project/
  2. package/
    3. dist/
    3. src/
      4. index.tsx
    3. tsconfig.json
1. test1/
  2. file1.tsx
1. test2/
  2. file2.tsx

project/package/src/index.tsx内,我这样导入测试文件:

import TestFile1 from "../../../test1/file1"
import TestFile2 from "../../../test2/file2"

这样做的原因是因为我正在创建一个npm软件包,并且希望能够从项目根目录导入配置文件(即文件夹结构将变成root/project/package/dist,而不是root/node_modules/packagescope/package,并且我想从test1/file1目录导入test2/file2root)。

在开发软件包期间,我有一些测试文件可以用作临时替换文件,但我不希望将这些文件添加到编译时的dist文件夹中。我希望能够对这些文件进行类型检查,以确保没有错误,但是我不希望它们被编译。我基本上想要一个“排除”选项,该选项仅适用于编译

想要发生的事情是,当我运行tsc时,它将编译project/package/src中的文件并将其输出到project/package/dist。因此,编译后,我应该拥有文件project/package/dist/index.js

我遇到的问题是,如果将rootDir设置为project/package/src文件夹,则会出现错误:

error TS6059: File 'C:/.../test1/file1.tsx' is not under 'rootDir' 
'C:/.../project/package/src'. 'rootDir' is expected to contain all source files.

如何使它工作?

1 个答案:

答案 0 :(得分:0)

  

它编译project / package / src中的文件,并将其输出到project / package / dist。因此,编译后,我应该拥有文件project / package / dist / index.js

您必须将所有src放在src中。将test移至src,然后移至.npmignore dist/test

示例

TypeStyle是一个开放源代码示例:https://github.com/typestyle/typestyle/tree/master/src/tests?