首页 新闻 会员 周边 捐助

vscode 扩展开发问题:激活时出现找不到 bridge.js 文件的错误

1
悬赏园豆:30 [待解决问题]

将园子的 vscode 扩展所依赖的 vscode engine 从 1.70.0 升级至 1.100.0 后,扩展在激活时出现下面的错误

Activating extension 'cnblogs.vscode-cnb' failed: ENOENT: no such file or directory, open 'c:\Users\Administrator\.vscode\extensions\cnblogs.vscode-cnb-1.0.0-beta.1754640319\dist\bridge.js'.

请问如何解决这个问题?

dudu的主页 dudu | 高人七级 | 园豆:24668
提问于:2025-08-08 16:19
< >
分享
所有回答(2)
0

卸载,直接安装最新版再装插件

快乐起航 | 园豆:63 (初学一级) | 2025-08-10 23:11

是自己开发的插件

支持(0) 反对(0) dudu | 园豆:24668 (高人七级) | 2025-08-11 13:10
0

终于定位到是下面的代码引起的

const download: (arg: Record<string, unknown>) => Promise<string> = require('download-chromium')

所使用的 npm 包是 download-chromium

dudu | 园豆:24668 (高人七级) | 2025-08-11 18:57

通过 createRequire 可以消除这个错误

const require = createRequire(import.meta.url);
const download: (arg: Record<string, unknown>) => Promise<string> = require('download-chromium')

解决方法来自 https://nodejs.org/api/module.html#modulecreaterequirefilename

但 build 时 esbuild 会出现下面的警告

▲ [WARNING] "import.meta" is not available with the "cjs" output format and will be empty [empty-import-meta]

    src/infra/chromium-path-provider.ts:8:30:
      8 │ const require = createRequire(import.meta.url);
        ╵                               ~~~~~~~~~~~

  You need to set the output format to "esm" for "import.meta" to work correctly.

支持(0) 反对(0) dudu | 园豆:24668 (高人七级) | 2025-08-11 21:53

使用 createRequire 会出现下面的错误

Activating extension 'cnblogs.vscode-cnb' failed: The argument 'filename' must be a file URL object, file URL string, or absolute path string. Received undefined.
支持(0) 反对(0) dudu | 园豆:24668 (高人七级) | 2025-08-11 22:35
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册