Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.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
Typescript 类型脚本编译器:生成的源、根目录、排除和符号链接_Typescript_Compilation_Symlink_Tsc - Fatal编程技术网

Typescript 类型脚本编译器:生成的源、根目录、排除和符号链接

Typescript 类型脚本编译器:生成的源、根目录、排除和符号链接,typescript,compilation,symlink,tsc,Typescript,Compilation,Symlink,Tsc,我有一个TypeScript 2.0.3项目的设置: src/main/webapp/tsconfig.json src/main/webapp/app -- contains .ts files src/main/webapp/app/tsModels -- a symlink to ../../../../target/tsModels target/tsModels/ -- contains .ts files 目标是编译target/tsModels中的.ts文件 首先,使用“ro

我有一个TypeScript 2.0.3项目的设置:

src/main/webapp/tsconfig.json
src/main/webapp/app -- contains .ts files
src/main/webapp/app/tsModels -- a symlink to ../../../../target/tsModels
target/tsModels/   -- contains .ts files
目标是编译
target/tsModels
中的.ts文件

首先,使用
“rootDir”:“
tsc

错误TS6059:文件“[…]/target/tsModels/AboutWindupModel.ts”不在“rootDir”[…]/src/main/webapp”下rootDir'应包含所有源文件

所以我试过了

{
  "compilerOptions": {  ...,
    //"rootDir": ".",
    "rootDirs": [".", "../../../target/tsModels"],
  },
} 
还是一样。尝试:

{
  "compilerOptions": {
    //"rootDir": ".",
    "rootDirs": [".", "../../../target/tsModels"],
  },
  "exclude": [
    "node_modules",
    "target/**",
    "../../../target/**", 
    "../../../target/**/*",
    "../../../target/tsModels/*", 
    "typings/main",
    "typings/main.d.ts"
  ]
}
但还是会犯这样的错误

因此,
tsc
似乎无法正确处理符号链接,总是检查规范路径

所以我想,让我们直接编译
tsModels
文件。因此,我删除了符号链接并尝试:

  "compilerOptions": {
    //"rootDir": ".",
    "rootDirs": [".", "../../../target/tsModels"],
  },
但是这实际上并不编译
tsModels
dir中的文件。
我甚至试过

    "rootDirs": "../../../target/tsModels",
但是
tsc
没有编译它,而是编译了
。它遵守了吗

如何从两个目录编译文件?
有没有办法使用指向rootDir外部目录的符号链接
rootDir

使用我尝试的所有垃圾进行完整配置:


{
“编译器选项”:{
“目标”:“es5”,
“模块”:“系统”,
“moduleResolution”:“节点”,
“源地图”:正确,
“emit decoromentadata”:正确,
“实验生态学者”:没错,
“removeComments”:false,
“noImplicitAny”:错,
//“rootDir”:“,
//“rootDirs”:[“,”../../../../target/tsModels”],
“rootDirs”:[“../../../target/tsModels”],
//“rootDir”:“../../../target/tsModels”,
“outDir”:“../../../target/windup web”,
“sourceRoot”:“/结束web/”
},
“排除”:[
“节点_模块”,
//“目标/**”,
//“../../../target/**”,
//“../../../target/***”,
//“../../../target/tsModels/*”,
//“目标/tsModels/**”,
“打字/主要”,
“打字/主要d.T”
]
}

我认为
preserveSymlinks
编译器选项可以帮助您:

不要将符号链接解析为其实际路径;将符号链接文件视为真实文件

例如:

{
    "compilerOptions": {
        "preserveSymlinks": true
    }
}

虽然此链接可以回答问题,但最好在此处包含答案的基本部分,并提供链接供参考。如果链接页面发生更改,仅链接的答案可能无效。-这不是一个链接唯一的答案。答案文本中包含重要信息-“使用保留符号链接编译器选项”。链接本身并不能回答这个问题,它是一个所有编译器选项的列表,我添加它只是为了参考。如果你觉得没有足够的信息,我添加了一个例子。事实上,我的评论可能会失败,这是很自然的。因此,在做出决定之前,几个评审员应该达成一致。不合格的评审员将受到处罚。在我看来,创建内容的系统也是如此,其中“答案”是一个内容单元(而不是其他论坛上的线程)。Asnwer应该是一个有趣的“故事”:)如果我失败了,不要担心太多——其他评论员/版主会评论我:)这就是它的工作原理。