gpt4 book ai didi

typescript - tsconfig 中是否有一个选项可以将服务器和客户端编译到公共(public)和私有(private)文件夹?

转载 作者:行者123 更新时间:2023-12-05 03:56:19 26 4
gpt4 key购买 nike

我有一个 typescript 项目,我有以下文件结构

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

src
-server
-client

tsconfig
package.json

我希望我的 src/server 编译到构建中的私有(private)文件夹,并将 src/client 编译到公共(public)文件夹。我使用 Parcel 作为使用 tsc 的编译器。所以我的问题是,这可以通过单个 tsconfig.json 的编译器选项来完成吗?因为我注意到你只能指定 1 个输出目录。或者我是否必须在服务器和客户端目录中创建 2 个 tsconfigs 并以某种方式同时使用两者?

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

最佳答案

以下内容需要 至少 typescript 3.0 版才能创建复合构建。

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

您将使用两个 tsconfigs:一个在 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
}

服务器做同样的事情。

现在,当您从根目录运行 tsc --build 时,每个子项目都将被构建并放置在各自的输出中。导入和导出将像所有内容都存在于一个项目中一样工作。

参见 project-references-demo完整示例的项目。

关于typescript - tsconfig 中是否有一个选项可以将服务器和客户端编译到公共(public)和私有(private)文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59460071/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com