• vscode 插件开发 + vue


    如果我们需要在vscode中嵌入自己开发的vue页面就需要以下的操作

    1.把开发好的vue项目打包,如果打包出来的vue执行是空白页,就需要看看之前我写的文章,vue 3 clie打包配置

      -这里要注意的是,要确保vue项目里面的public有一个index用作插件打开时的模板,等一下需要做base的特换,不然插件是不知道网页的根目录在哪里

    index.html

    <!DOCTYPE html>
    <html lang="en">
      <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width,initial-scale=1.0">
        <link rel="icon" href="<%= BASE_URL %>favicon.ico">
        <title>Test</title>
        <base href="/">
      </head>
      <body>
        <div id="app"></div>
      </body>
    </html>
    

        -vue.config.js的配置

    const path = require('path');
    function resolve (dir) {
        return path.join(__dirname, dir)
    }
    
    
    module.exports = {
        // 基本路径
        publicPath: './',
        // 输出文件目录
        outputDir: 'dist',
        pages: {
          index: {
            entry: 'src/main.js',
            template: 'public/index.html',
            filename: 'index.html',
            chunks: ['chunk-vendors', 'chunk-common', 'index']
          }
        },
        lintOnSave:false,
        configureWebpack: {
          externals: {
          }
        },
        chainWebpack: (config)=>{
          //修改文件引入自定义路径
          config.resolve.alias
              .set('@', resolve('src'))
              .set('~assets',resolve('src/assets'))
              // .set('ide',resolve('src/ide'))
    
        }
      }

    2.把打包好的整个dist考到vscode插件里面

      -vscode插件的命令行触发函数里面,需要这样写

    const panel = vscode.window.createWebviewPanel(
                    'testWebview', // viewType
                    "WebView演示", // 视图标题
                    vscode.ViewColumn.One, // 显示在编辑器的哪个部位
                    {
                        enableScripts: true, // 启用JS,默认禁用
                        retainContextWhenHidden: true, // webview被隐藏时保持状态,避免被重置
                    }
                );
                //加载本地html页面
                let srcPath = path.join(context.extensionPath, 'dist');
                // console.log(srcPath)
                const srcPathUri = vscode.Uri.file(srcPath);
                // console.log(srcPathUri.path)
                const baseUri = panel.webview.asWebviewUri(srcPathUri);
                // console.log(baseUri)
                const indexPath = path.join(srcPath, 'index.html');
                // console.log(indexPath)
                var indexHtml = fs.readFileSync(indexPath, "utf8");
    
    
                indexHtml = indexHtml.replace('<base href=/ >', `<base href="${String(baseUri)}/">`);
    
                // console.log(indexHtml)
                panel.webview.html = indexHtml;

    这样,打开的页面就能正确显示

  • 相关阅读:
    ExtJs 第二章,Ext.form.Basic表单操作
    linux centos 下php的mcrypt扩展
    curl_errno错误码说明
    centos 安装composer
    虚拟机centOs Linux与Windows之间的文件传输
    CentOS 6.4 linux下编译安装 LNMP环境
    CentOS 6.4 php-fpm 添加service 添加平滑启动/重启
    CentOS 6.4 linux下编译安装MySQL5.6.14
    centOS linux 下PHP编译安装详解
    centOS linux 下nginx编译安装详解
  • 原文地址:https://www.cnblogs.com/oscar1987121/p/13048382.html
Copyright © 2020-2023  润新知