Node.js Typescript中的out目录具有相同的目录结构,如何?
问题:根据myNode.js Typescript中的out目录具有相同的目录结构,如何?,node.js,typescript,ecmascript-6,Node.js,Typescript,Ecmascript 6,问题:根据myserver/app.ts中导入的模块,distTypescript输出目录的结构发生变化 目录server保存服务器(节点)文件,shared保存通用模型(类),而dist是out目录: ├───dist ├───server │ app.ts │ tsconfig.json │ ├───shared │ customer.model.ts | index.ts │ │── package.json │── tsconfig.jso
server/app.ts
中导入的模块,dist
Typescript输出目录的结构发生变化
目录server
保存服务器(节点)文件,shared
保存通用模型(类),而dist
是out目录:
├───dist
├───server
│ app.ts
│ tsconfig.json
│
├───shared
│ customer.model.ts
| index.ts
│
│── package.json
│── tsconfig.json
如果我使用以下server/app.ts
运行tsc-p服务器
:
import * as path from 'path';
// ..
console.log('Starting the server...');
import * as path from 'path';
import { Customer } from '../shared';
// ..
console.log('Starting the server...');
以下是输出dist
文件夹:
└───server
app.js
app.js.map
导入共享/customer.model.ts
后:
import * as path from 'path';
// ..
console.log('Starting the server...');
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
选项,但我不知道如何使用:
├───server
│ app.js
│ app.js.map
│
└───shared
customer.model.js
customer.model.js.map
index.js
index.js.map
根据我的理解,这应该会产生所需的结构:
{
"extends": "../tsconfig.json",
"compilerOptions": {
"rootDir": <path-to-the-parent of server, shared and dist>
"outDir": "../dist",
{
“扩展”:“./tsconfig.json”,
“编译器选项”:{
“rootDir”:
“outDir”:“./dist”,
如果您想在dist/
中获得这样的文件夹结构
├───server
│ app.js
│ app.js.map
│
└───shared
customer.model.js
customer.model.js.map
index.js
index.js.map
我认为您的基本配置应该是:
{
"compilerOptions": {
"outDir": "dist",
"baseUrl": "./",
"module": "commonjs"
},
"include": [
"./server/**/*.ts",
"./shared/**/*.ts"
]
}
在您的示例中,我认为您不需要两个
tsconfig
文件。不,您会得到错误:customer.model.ts
不在rootDir中:(如果shared
位于rootDir
中,并且customer.model.ts
位于shared
中,则不应该发生这种情况。它可能是来自不同目录的customer.mode.ts
(是否将其符号链接到另一个位置?然后--preserveSymlinks:true
可能会有所帮助(或使事情变得更糟)),或者正在发生其他事情)。