首页 > 解决方案 > 创建 new File() 或 new Blob() 会导致 VSCode 扩展崩溃

问题描述

我目前正在尝试在 vs code webview 扩展中保存带有“另存为...”弹出窗口的文件。

我已经尝试过的事情:在 web 视图中使用 htmls“下载”属性,但链接在单击它们时什么也不做。

所以我尝试下载 nodejs https://www.npmjs.com/package/file-saver/v/1.3.2 的文件保护程序扩展,问题是,当我尝试在我的 vsCode 扩展中运行此代码时:

var file = new File(["Hello, world!"], "hello world.txt", {type:
"text/plain;charset=utf-8"}); saveAs(file);

新文件的创建导致我的 vscode 扩展崩溃:

/C:/Users/hansel/…esktop.main.js:2786 Error: Running the contributed command: 'extension.helloWorld' failed. at _executeContributedCommand (c:\Users\hansel\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:549:316) at _.$executeContributedCommand (c:\Users\hansel\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:549:595) at p._doInvokeHandler (c:\Users\hansel\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:688:464) at p._invokeHandler (c:\Users\hansel\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:688:156) at p._receiveRequest (c:\Users\hansel\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:686:817) at p._receiveOneMessage (c:\Users\hansel\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:685:623) at c:\Users\hansel\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:683:791 at l.fire (c:\Users\hansel\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:48:845) at v.fire (c:\Users\hansel\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:191:325) at c:\Users\hansel\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:851:104 at l.fire (c:\Users\hansel\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:48:845) at v.fire (c:\Users\hansel\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:191:325) at Object._receiveMessage (c:\Users\hansel\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:195:717) at c:\Users\hansel\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:192:897 at l.fire (c:\Users\hansel\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:48:845) at p.acceptChunk (c:\Users\hansel\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:188:897) at c:\Users\hansel\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:188:249 at Socket.t (c:\Users\hansel\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:197:232) at Socket.emit (events.js:203:13) at addChunk (_stream_readable.js:295:12) at readableAddChunk (_stream_readable.js:276:11) at Socket.push (_stream_readable.js:210:10) at Pipe.onStreamRead (internal/stream_base_commons.js:166:17)

尝试使用 msSaveOrOpenBlob 保存 blob

var blob = new Blob(["1","1"]);
window.navigator.msSaveOrOpenBlob(blob, 'msSaveBlob_testFile.docx');

当我尝试创建 blob 时导致相同的错误消息

有什么方法可以摆脱这些错误并在 vs 代码扩展中具有“另存为...”功能?

标签: javascripttypescriptvisual-studio-codevscode-extensionssave-as

解决方案


推荐阅读