Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.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
Node.js Typescript中的out目录具有相同的目录结构,如何?_Node.js_Typescript_Ecmascript 6 - Fatal编程技术网

Node.js Typescript中的out目录具有相同的目录结构,如何?

Node.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

问题:根据my
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
可能会有所帮助(或使事情变得更糟)),或者正在发生其他事情)。