【发布时间】:2020-04-19 16:42:45
【问题描述】:
我想使用 npm 包(latextoMathML),但是当我在我的 web 视图上使用它时,它在运行扩展时出现错误:未定义的引用被捕获:包名称(latextoXML)未定义。 我已经尝试通过 let / var / const 使用 require 方法。 我想在 webview 函数下的 js 代码中使用。
【问题讨论】:
标签: javascript webview vscode-extensions
我想使用 npm 包(latextoMathML),但是当我在我的 web 视图上使用它时,它在运行扩展时出现错误:未定义的引用被捕获:包名称(latextoXML)未定义。 我已经尝试通过 let / var / const 使用 require 方法。 我想在 webview 函数下的 js 代码中使用。
【问题讨论】:
标签: javascript webview vscode-extensions
你不能以通常的方式将npm包导入webview,例如这样:
var somelibrary = require('somelibrary')
相反,您可以将包加载为本地资源。
查看 Webview API documentation 和 example code 了解详细说明
为此,请遵循以下最少步骤:
const panel = vscode.window.createWebviewPanel(
'viewType',
'view name',
vscode.ViewColumn.One,
{
// Enable javascript in the webview
enableScripts: true
}
);
const libraryPath = vscode.Uri.file(
path.join(extensionPath, 'node_modules', 'somelibrary', 'somelibrary.js')
);
const scriptUri = webview.asWebviewUri(libraryPath);
return '
...
<script src='$(scriptUri)'></script>
...
';
【讨论】: