引用 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.ts
中 shared
文件夹文件的导入语句后 - 此错误消失。
我的问题是是否可以从扩展目录外部引用代码,如果可以,应该怎么做。
我能够通过从 shared
文件夹而不是 .ts
.
导入代码的 .js
版本来解决这个问题
最初,虽然 vscode intellisense 和 tsc build-time 显示从 shared
文件夹导入 .ts
文件没有问题,但在扩展代码被编译成 .js
(默认情况下放置在 out
文件夹中)我发现这段代码仍在尝试从 shared
文件夹中导入 .ts
,这显然导致了其余代码停止工作。
vscode 返回的错误过于宽泛,无法识别此问题,希望此解决方案可以帮助任何在使用 monorepos 时遇到类似问题的人。
我有一个 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.ts
中 shared
文件夹文件的导入语句后 - 此错误消失。
我的问题是是否可以从扩展目录外部引用代码,如果可以,应该怎么做。
我能够通过从 shared
文件夹而不是 .ts
.
.js
版本来解决这个问题
最初,虽然 vscode intellisense 和 tsc build-time 显示从 shared
文件夹导入 .ts
文件没有问题,但在扩展代码被编译成 .js
(默认情况下放置在 out
文件夹中)我发现这段代码仍在尝试从 shared
文件夹中导入 .ts
,这显然导致了其余代码停止工作。
vscode 返回的错误过于宽泛,无法识别此问题,希望此解决方案可以帮助任何在使用 monorepos 时遇到类似问题的人。