我正在使用Visual Studio Code并且具有相当常见的项目结构:
??? client/
? ??? tsconfig.json
??? shared/
??? server/
? ??? tsconfig.json
??? project.json
Run Code Online (Sandbox Code Playgroud)
这两个tsconfig文件具有不同的设置(例如,client/目标ES5 下的设置,server/目标ES6下的设置).
问题是我希望共享目录包含在两个项目中.我不能使用tsconfig这样做,因为该exclude选项不允许我包含一个比tsconfig.json更高的目录中的文件夹,并且使用files我必须不断保持文件列表是最新的,因为它不支持全球.
请注意,我可以通过将共享文件夹添加到tsc中来编译,我想要的是Visual Studio Code IDE识别intellisense的共享代码等.
是等待filesGlob的唯一选择吗?
我的代码库包含两个打字稿项目:
Web Worker 代码库是我的public/文件夹的一部分。这意味着同一个工作区中有两个打字稿项目。我怎样才能使这个与 vs-code 一起工作?
到目前为止,我的问题基本上是重复的:How to use multiple tsconfig files in vs-code?
接受的答案解释了如何设置基本配置然后扩展它:
//tsconfig.worker.json:
{
"extends": "./tsconfig.json",
"exclude": [
"src/app"
]
}
Run Code Online (Sandbox Code Playgroud)
但这对我来说不起作用。对于worker.ts我需要lib与反应应用程序不同的配置。
可以覆盖 my 中的配置tsconfig.worker.json并使用新设置进行编译。但对于自动补全和错误高亮,vs-code 只使用了tsconfig.json,这与 webworker 源代码不兼容。
我目前有以下项目结构:
project/
tsconfig.json
webpack.config.js
package.json
node_modules/
...lots of dependencies
typings/
...lots of .d.ts files for the dependencies
src/
...folders for files for my projects
Run Code Online (Sandbox Code Playgroud)
我tsonfig.json看起来像:
{
"compilerOptions": {
"module": "commonjs",
"target": "es5",
"noImplicitAny": false,
"outDir": "./js",
"rootDir": "./src",
"sourceMap": true,
"jsx": "react"
},
"exclude": [
"typings/main.d.ts",
"typings/main",
"node_modules"
]
}
Run Code Online (Sandbox Code Playgroud)
这一切都很好,我可以愉快地开发我的应用程序并在浏览器中运行它.
我现在想在我的项目中添加一些单元测试并来自Java背景,我最初的本能是将测试放在一个单独的文件夹中:
project/
test/
...all of my test cases
Run Code Online (Sandbox Code Playgroud)
当然,文件test/夹中的文件需要引用我src/文件夹中的代码.我该如何设置?
或者将测试内联放在src/文件夹中并webpack.config.js为它们设置单独的文件是"更好"的吗?
真的很困惑这在大型TypeScript项目中如何在实践中工作.
注意:我已经看过这个,但发现答案不是很有启发性.看来引用的功能讨论filesGlob会对我有所帮助,但我只是想知道人们今天是怎么做的?