vscode 插件开发 + vue的操作方法


Posted in Javascript onJune 05, 2020

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

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

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

index.html

-vue.config.js的配置

<!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;

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

总结

到此这篇关于vscode 插件开发 + vue的操作方法的文章就介绍到这了,更多相关vscode 插件开发 vue内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
简单JS代码压缩器
Oct 12 Javascript
javascript代码加载优化方法
Jan 30 Javascript
JS判断元素为数字的奇异写法分享
Aug 01 Javascript
js选取多个或单个元素的实现代码(用class)
Aug 22 Javascript
jQuery页面刷新(局部、全部)问题分析
Jan 09 Javascript
jQuery实现Table表格隔行变色及高亮显示当前选择行效果示例
Feb 14 Javascript
JS实现数组去重复值的方法示例
Feb 18 Javascript
使用grunt合并压缩js和css文件的方法
Mar 02 Javascript
详解Vue2.X的路由管理记录之 钩子函数(切割流水线)
May 02 Javascript
JavaScript Drum Kit 指南(纯 JS 模拟敲鼓效果)
Jul 23 Javascript
vue路由拦截及页面跳转的设置方法
May 24 Javascript
VUE DEMO之模拟登录个人中心页面之间数据传值实例
Oct 31 Javascript
vue渲染方式render和template的区别
Jun 05 #Javascript
Vue是怎么渲染template内的标签内容的
Jun 05 #Javascript
Vue 如何使用props、emit实现自定义双向绑定的实现
Jun 05 #Javascript
VueX模块的具体使用(小白教程)
Jun 05 #Javascript
Vuex的热更替如何实现
Jun 05 #Javascript
2分钟实现一个Vue实时直播系统的示例代码
Jun 05 #Javascript
Vue 封装防刷新考试倒计时组件的实现
Jun 05 #Javascript
You might like
实用函数4
2007/11/08 PHP
php函数指定默认值方法的小例子
2013/12/04 PHP
yii框架搜索分页modle写法
2016/12/19 PHP
php 查找数组元素提高效率的方法详解
2017/05/05 PHP
laravel利用中间件防止未登录用户直接访问后台的方法
2019/09/30 PHP
PHP架构及原理知识点详解
2019/12/22 PHP
Nigma vs Alliance BO5 第五场2.14
2021/03/10 DOTA
JS获取父节点方法
2009/08/20 Javascript
firefox firebug中文入门教程 脚本之家新年特别版
2010/01/02 Javascript
jQuery 自动增长的文本输入框实现代码
2010/04/02 Javascript
JS 表单验证大全
2011/11/23 Javascript
jquery实现的一个简单进度条效果实例
2014/05/12 Javascript
jQuery简易图片放大特效示例代码
2014/06/09 Javascript
jQuery实现的导航条切换可显示隐藏
2014/10/22 Javascript
jQuery修改li下的样式以及li下的img的src的值的方法
2014/11/02 Javascript
js获取浏览器基本信息大全
2014/11/27 Javascript
jquery实现选中单选按钮下拉伸缩效果
2015/08/06 Javascript
JS中对Cookie的操作详解
2016/08/05 Javascript
微信小程序 设置启动页面的两种方法
2017/03/09 Javascript
Node.js dgram模块实现UDP通信示例代码
2017/09/26 Javascript
在vue中,v-for的索引index在html中的使用方法
2018/03/06 Javascript
使用 UniApp 实现小程序的微信登录功能
2020/06/09 Javascript
vue使用require.context实现动态注册路由
2020/12/25 Vue.js
PyCharm搭建Spark开发环境实现第一个pyspark程序
2019/06/13 Python
django框架事务处理小结【ORM 事务及raw sql,customize sql 事务处理】
2019/06/27 Python
python 实现dict转json并保存文件
2019/12/05 Python
新手学习Python2和Python3中print不同的用法
2020/06/09 Python
css3 边框、背景、文本效果的实现代码
2018/03/21 HTML / CSS
意大利奢侈品网站:Italist
2016/08/23 全球购物
希腊品牌鞋类销售网站:epapoutsia.gr
2020/03/18 全球购物
英国专业美容产品在线:Mylee(从指甲到脱毛)
2020/07/06 全球购物
党员教师批评与自我批评发言稿
2014/10/15 职场文书
2015年社区精神文明工作总结
2015/05/26 职场文书
幼儿园教师教学反思
2016/03/02 职场文书
《悬崖边的树》读后感2篇
2019/12/02 职场文书
win10识别不了U盘怎么办 win10系统读取U盘失败的解决办法
2022/08/05 数码科技