tsconfig中是否存在将服务器和客户端编译为公用和专用文件夹的选项?

问题描述 投票:0回答:1

我有一个打字稿项目,并且我具有以下文件结构

builds
-dev
--public
--private
-production
--public
--private

src
-server
-client

tsconfig
package.json 

我希望我的src / server编译为build中的私有文件夹,而src / client编译为公共文件夹。我使用Parcel作为使用tsc的编译器。所以我的问题是,可以使用单个tsconfig的编译器选项来完成此操作。因为我注意到您只能指定1个输出目录。还是我必须在服务器和客户端目录中创建2个tsconfig,然后以某种方式使用两者?

我可以找到的所有示例都是使用Webpack完成的,我真的可以使用Parcel。Server & client-side TypeScript project organization, compilation

typescript tsc parcel
1个回答
0
投票

以下内容需要至少打字稿版本3.0,才能创建复合版本。

请参见https://www.typescriptlang.org/docs/handbook/project-references.html

您将使用两个tsconfig:一个位于src/server中,另一个位于src/client中;您还将需要一个根tsconfig.json

在根目录中,您将需要:

"references": [{
    "path": "./src/client"
}, {
    "path": "./src/server"
}]

然后在src/client/tsconfig.json中,您将需要以下内容:

"compilerOptions": {
    "outDir": "../../builds/dev/public",
    "rootDir": ".",
    "composite": true
}

server执行相同操作。

现在,当您从根目录运行tsc --build时,将创建每个子项目并将其放置在各自的输出中。进出口就像所有项目都存在于一个项目中一样。

请参见project-references-demo项目以获取完整示例。

© www.soinside.com 2019 - 2024. All rights reserved.