Typescript tsconfig中是否有将服务器和客户端编译到公用和专用文件夹的选项?
我有一个typescript项目,我有以下文件结构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
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
中;您还需要一个roottsconfig.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捆绑到一个文件中,或者将其拆分为多个文件以优化速度。