Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.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_Visual Studio Code_Tsconfig - Fatal编程技术网

在typescript中添加文件引用

在typescript中添加文件引用,typescript,visual-studio-code,tsconfig,Typescript,Visual Studio Code,Tsconfig,我在一个包含子文件夹的文件夹中有一个lib,其中包含一些typescript文件,其中一些依赖于其他子文件夹中的其他文件 我想包括其中一些文件,就像它在另一个项目中是本地的一样。 visual studio中提供了类似的功能(添加引用文件/文件夹),但无法使用typescript/vscode进行复制 尝试了多种方法,如直接导入和使用tsconfig(路径、包含、引用项目等),但所有这些方法都存在实现这一点的问题。 我结束了符号链接,但不是最好的解决方案 我想说清楚: 我不希望在每个子文件夹库

我在一个包含子文件夹的文件夹中有一个lib,其中包含一些typescript文件,其中一些依赖于其他子文件夹中的其他文件

我想包括其中一些文件,就像它在另一个项目中是本地的一样。 visual studio中提供了类似的功能(添加引用文件/文件夹),但无法使用typescript/vscode进行复制

尝试了多种方法,如直接导入和使用tsconfig(路径、包含、引用项目等),但所有这些方法都存在实现这一点的问题。 我结束了符号链接,但不是最好的解决方案

我想说清楚:

  • 我不希望在每个子文件夹库中都有节点\模块/键入
  • 我不希望每个子文件夹库都有预编译的项目
  • 我只想在另一个文件夹中创建一个文件,就像项目中的本地文件一样
提前谢谢


如果我理解正确的话,听起来它完全实现了你想要实现的目标

使用“rootDirs”,您可以通知编译器组成这个“虚拟”目录的根;因此,编译器可以解析这些“虚拟”目录中的相对模块导入,就好像它们合并在一个目录中一样


编辑:这里是对您的配置的更新,以允许您的
node\u模块
lib
文件夹中的项目共享。请注意,您需要将
tsconfig
移动到两个文件夹共享的父目录,例如根项目目录:

        "baseUrl": ".",
        "paths": {
            "*": ["app/node_modules/*"]
        },
        "rootDirs": [
            "app/src",
            "lib",
        ]

我还打算提出象征性的联系,但听起来你已经得出了这个结论。你考虑过了吗?你的问题不清楚。请提供一个文件结构示例。谢谢@Wex,我尝试过npm链接一次,但与webpack发生了一些冲突,在其他环境中的安装变得复杂,更不用说文件需要使用他的模块编译,等等。可能我要求太多了…:)是的,尝试了,但是如果尝试打开文件(打开符号等),它会抱怨缺少类型。我有时能够使代码正常工作,但编译器开始到处抛出错误,以查找缺少的模块(外部模块)、键入和依赖项。在visual studio(无vscode)中,可以添加一个文件,就像它存在于本地目录中一样,至少在.net语言中是这样。添加了一个存储库。如果您在src中打开索引并按住ctrl键并单击Comp标记,它将打开文件并抱怨缺少react模块。需要注意的几件事:1)如果您在
app
文件夹中安装
npm
,您的
react
错误将消失。2) 实际上,您可以从“/Comp”执行
导入{Comp}
使用当前的
rootDirs
设置(这就是我刚才说的意思,它让您感觉将
lib/component
文件夹视为本地文件夹)。同样,如果将
rootDirs
更改为
['src','../lib']
您的导入将从“/component/comp”再次感谢Wex。我遵循了您的指导,能够以不同的方式导入,并且我已经使用npm安装安装了react模块,但是仍然得到comp.tsx中缺少react的错误。Typescript可能会生成有效代码(即使有错误),但始终查看comp.tsx文件所在的位置,并且没有安装任何模块。