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