Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript tsconfig中是否有将服务器和客户端编译到公用和专用文件夹的选项?_Typescript_Tsc_Parcel - Fatal编程技术网

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

Typescript tsconfig中是否有将服务器和客户端编译到公用和专用文件夹的选项?,typescript,tsc,parcel,Typescript,Tsc,Parcel,我有一个typescript项目,我有以下文件结构 builds -dev --public --private -production --public --private src -server -client tsconfig package.json 我希望我的src/server编译到构建中的私有文件夹,src/client编译到公共文件夹。我使用Parcel作为我的编译器,它使用tsc。所以我的问题是,这可以用单个tsconfig的编译器选项来完成吗。因为我注意到您只能指定1

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

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

src
-server
-client

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

我能找到的所有例子都是用Webpack完成的,我真的开始使用Parcel了。

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

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

在根目录中,您需要:

"references": [{
    "path": "./src/client"
}, {
    "path": "./src/server"
}]
然后在
src/client/tsconfig.json中,您将需要以下内容:

"compilerOptions": {
    "outDir": "../../builds/dev/public",
    "rootDir": ".",
    "composite": true
}
对服务器执行相同的操作

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


请参阅project以获取完整的示例。

这是可行的,但现在是tsc来编译它。那个包裹呢,那个么我需要它吗?@Michael,我不知道如何将
包裹
应用于此,因为我从未使用过它。我的回答是关于如何使用tsconfig和typescript实现这种分离。我认为将其应用于包裹将取决于您使用包裹的目的。鉴于typescript只会生成js,我认为parcel可以帮助将所有js捆绑到一个文件中,或者将其拆分为多个文件以优化速度。