问题:dist
Typescript输出目录的结构会根据我server/app.ts
中导入的模块而发生变化。
目录server
包含服务器(节点)文件,shared
包含通用模型(类),而dist
是out目录:
├───dist
├───server
│ app.ts
│ tsconfig.json
│
├───shared
│ customer.model.ts
| index.ts
│
│── package.json
│── tsconfig.json
如果我使用以下tsc -p server
运行server/app.ts
:
import * as path from 'path';
// ..
console.log('Starting the server...');
以下是输出 dist
文件夹:
└───server
app.js
app.js.map
我导入shared/customer.model.ts
后:
import * as path from 'path';
import { Customer } from '../shared';
// ..
console.log('Starting the server...');
变成:
└───server
├───server
│ app.js
│ app.js.map
│
└───shared
customer.model.js
customer.model.js.map
index.js
index.js.map
档案tsconfig.json
:
{
"extends": "../tsconfig.json",
"compilerOptions": {
"outDir": "../dist/server",
"baseUrl": "./",
"module": "commonjs"
}
}
我希望有一个可预测的目录结构,如下所示,我知道我应该使用rootDir
和rootDirs
选项,但我不会&#39知道如何:
├───server
│ app.js
│ app.js.map
│
└───shared
customer.model.js
customer.model.js.map
index.js
index.js.map
答案 0 :(得分:1)
根据我对这个FAQ的理解,这应该产生所需的结构:
{
"extends": "../tsconfig.json",
"compilerOptions": {
"rootDir": <path-to-the-parent of server, shared and dist>
"outDir": "../dist",
答案 1 :(得分:1)
如果您想在dist/
这样的
├───server
│ app.js
│ app.js.map
│
└───shared
customer.model.js
customer.model.js.map
index.js
index.js.map
我认为你的基础tsconfig
应该是:
{
"compilerOptions": {
"outDir": "dist",
"baseUrl": "./",
"module": "commonjs"
},
"include": [
"./server/**/*.ts",
"./shared/**/*.ts"
]
}
在您的示例中,我认为您不需要两个tsconfig
个文件。