【问题标题】:VSCode extension cannot find module when installed from Marketplace从 Marketplace 安装时,VSCode 扩展找不到模块
【发布时间】:2021-07-15 09:43:10
【问题描述】:

我正在尝试编写 requires 其他节点模块的 VS 代码扩展。不幸的是,当用户从市场安装扩展时,找不到这些模块。

我所做的是将模块添加到my package.jsondependencies 部分(这是extension manifest 想要的)。当我在本地运行 npm install 时,会创建一个 node_modules 文件夹并包含模块。通过 launch.json 在本地运行扩展是可行的。

但是,当通过VS Code Marketplace 安装扩展时,触发其操作将失败,调试工具控制台将显示消息

Activating extension 'lalten.vscode-unify' failed: Cannot find module 'tempy'
Require stack:
- /home/laurenz/.vscode-server/extensions/lalten.vscode-unify-0.2.2/out/extension.js
- /home/laurenz/.vscode-server/bin/3c4e3df9e89829dce27b7b5c24508306b151f30d/out/vs/loader.js
- /home/laurenz/.vscode-server/bin/3c4e3df9e89829dce27b7b5c24508306b151f30d/out/bootstrap-amd.js
- /home/laurenz/.vscode-server/bin/3c4e3df9e89829dce27b7b5c24508306b151f30d/out/bootstrap-fork.js.

并且确实缺少 node_modules 目录:

$ ls /home/user/.vscode-server/extensions/lalten.vscode-unify-0.2.2/
icon.png  images  LICENSE.md  out  package.json  README.md

(这发生在本地和 ssh-remote vscode-server 中,/home/laurenz/.vscode/extensions/lalten.vscode-unify-0.2.2/ 也没有 node_modules。)

.vscodeignore 似乎是无辜的,vsce ls 包含 node_modules/。

其他人过去遇到过这个问题,但他们的解决方案是update vsce(我有最新的1.87.1),使用dependencies instead of devDependencies(我这样做)或deleting the node_modules folder(这没有帮助)。

我也很奇怪这个扩展在CI 中工作,所以我的直觉是它一定是它的发布方式。

有什么想法吗?

【问题讨论】:

  • 从市场下载 .vsix 文件并将其作为 .zip 文件打开时,似乎没有包含任何 node_modules 文件夹。因此,如果 vsce ls 包含它,则某些内容不会累加。
  • 一般来说,最好还是将依赖项捆绑到一个文件中以提高性能。另见:code.visualstudio.com/api/working-with-extensions/…
  • 在本地创建一个带有vsce.vsix 文件,并确定该文件中为什么不包含node_modules

标签: node.js visual-studio-code node-modules package.json vscode-extensions


【解决方案1】:

原来我的 package.json 在 scripts 部分:

    "deploy": "vsce publish --yarn"

应该是什么时候

    "deploy": "vsce publish"

现在包含node_modules

感谢帮助我的 cmets 让我走上了正轨。我也会考虑在未来捆绑扩展。

【讨论】:

  • 在同一个问题上苦苦挣扎了一段时间,而改变它最终也为我解决了这个问题。谢谢!
猜你喜欢
  • 2019-09-10
  • 2021-07-23
  • 1970-01-01
  • 2021-04-28
  • 2022-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多