首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在vs代码webview扩展开发中导入npm包?

如何在vs代码webview扩展开发中导入npm包?
EN

Stack Overflow用户
提问于 2020-04-19 16:42:45
回答 1查看 1.1K关注 0票数 0

我想使用npm (LatextoMathML),但是当我在我的when视图上使用它时,它会给我运行扩展时的错误,即:未定义的引用:未定义的包名(LatextoXML)。我用require方法尝试了let / var / const。我想在我的js代码中使用webview函数。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-21 18:52:36

您不能以通常的方式将npm包导入到way视图中,例如:

代码语言:javascript
运行
复制
var somelibrary = require('somelibrary')

相反,您可以将包作为本地资源加载。

有关详细说明,请参阅Webview API文档示例代码

要做到这一点,请遵循以下最小步骤:

  • 创建新面板时,启用脚本
代码语言:javascript
运行
复制
const panel = vscode.window.createWebviewPanel(
            'viewType',
            'view name',
            vscode.ViewColumn.One,
            {
                // Enable javascript in the webview
                enableScripts: true
            }
        );
  • 将npm包路径包装在一个特殊的vscode uri中。这个uri实际上将包含以下字符串:"vscode-resource://file///path-to-extension/node_modules/somelibrary/somelibrary.js“
代码语言:javascript
运行
复制
const libraryPath = vscode.Uri.file(
    path.join(extensionPath, 'node_modules', 'somelibrary', 'somelibrary.js')
);

const scriptUri = webview.asWebviewUri(libraryPath);
  • 创建html面板结构时传递路径
代码语言:javascript
运行
复制
return '
...
<script src='$(scriptUri)'></script>
...
';
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61307979

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档