引用 VS Code 扩展根文件夹外的代码

Referencing code outside the VS Code extension root folder

我有一个 monorepo,我的 VS Code 扩展代码位于 vs-code-extension 文件夹中:

.
├── website
├── vs-code-extension
└── shared

我正在尝试从 vs-code-extension 中的代码中的 shared 文件夹访问代码。扩展代码主要是项目初始构建时自动生成的默认值。我所做的唯一值得注意的更改是向 extension.ts 内的 shared 文件夹中的文件添加导入语句,并添加对 tsconfig.json 文件的引用,如下所示:

"references": [
  { "path": "../shared" }
],

因此,扩展启动得很好,但是在尝试执行 helloWorld 命令时,出现以下错误:

command 'my-project-name.helloWorld' not found

删除 extension.tsshared 文件夹文件的导入语句后 - 此错误消失。

我的问题是是否可以从扩展目录外部引用代码,如果可以,应该怎么做。

我能够通过从 shared 文件夹而不是 .ts.

导入代码的 .js 版本来解决这个问题

最初,虽然 vscode intellisense 和 tsc build-time 显示从 shared 文件夹导入 .ts 文件没有问题,但在扩展代码被编译成 .js(默认情况下放置在 out 文件夹中)我发现这段代码仍在尝试从 shared 文件夹中导入 .ts,这显然导致了其余代码停止工作。

vscode 返回的错误过于宽泛,无法识别此问题,希望此解决方案可以帮助任何在使用 monorepos 时遇到类似问题的人。