如何使打字稿仅编译所需的文件?

时间:2019-07-28 22:56:05

标签: reactjs typescript

这是XY problem;回答任何部分都可以。

X:我想从单个源树中生成多个包。我知道webpack supporting this,但恐怕无法使用。例如,我的路由器受到一个或多个将路由(字符串)映射到页面(组件)的映射的支持。我将这些地图存储在单独的文件中,并导入注释并根据需要使用它们(我编写了一个简单的脚本为我做这件事)。

有更好的解决方案吗?

Y:因此,在构建 admin 捆绑软件时,无法从index.tsx访问 user 页面。尽管如此,我仍然遇到打字错误。即使我创建一个包含错误的未使用的新文件,也会发生同样的情况。

如何避免编译未使用的文件?


我并没有像我希望的那样在这里发布所有配置文件,这里有一个简单的设置。必要时我会做。仅此列表使我感到沮丧:

.babelrc
.env
.eslintrc
.gitignore
config-overrides.js
package.json
tsconfig.json
tslint-imports.json

1 个答案:

答案 0 :(得分:1)

这是部分答案,但希望它将带您正确的方向。 Typescript查看tsconfig.json。假设您的启动来自npm脚本,则可以使用similar = [] for x in iReply: if x in iRequest: similar.append(iReply[x]) 标志(例如--project)指定要使用的tsconfig。

在tsconfig.json文件中,仅包含条目文件,例如

tsc --project tsconfig-1.json

如果您有类似include: [ "src/app/index.ts" ] 的文件,它将处理所有文件。但是,您只指定了入口文件,那么它将仅处理该导入树中的文件。该树由"src/**/*" / import语句定义。我不确定import()的处理方式是否不同。

以供参考:https://www.typescriptlang.org/docs/handbook/tsconfig-json.html

如果要创建多个捆绑包,则需要运行多个npm脚本并具有多个tsconfig文件,或者从命令行指定文件。