vscode插件开发 webview使用外部项目

  1. 可以直接在vscode插件代码中引入本地html文件
function getViewContent(context, templatePath) {
  const resourcePath = path.join(context.extensionPath, templatePath);
  const dirPath = path.dirname(resourcePath);
  let html = fs.readFileSync(resourcePath, 'utf-8');
  // vscode不支持直接加载本地资源,需要替换成其专有路径格式,这里只是简单的将样式和JS的路径替换
  html = html.replace(/(<link.+?href="|<script.+?src="|<img.+?src=")(.+?)"/g, (m, $1, $2) => {
    return $1 + vscode.Uri.file(path.resolve(dirPath, $2)).with({ scheme: 'vscode-resource' }).toString() + '"';
  });
  return html;
}

使用:

 panel.webview.html = getViewContent(context, 'src/view/demo.html');
 //第二个参数为webview在代码中的路径
  1. 使用打包后的外部项目的js文件
function getPubWebviewContent(pubLink) {
  return `<html>
  <body>
  <div id="root"></div>
    <script src="${pubLink}"></script>
  </body>
</html>`;
}

使用:

const link = vscode.Uri.file(
        path.resolve(__dirname, "./assert/bundle.js")
        //js文件为项目打包生成的js文件
      )
        .with({ scheme: "vscode-resource" })
        .toString();
      panel.webview.html = getPubWebviewContent(link);
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值