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 方法实现返回多个数据的代码
Apr 30 Javascript
JS 学习笔记 防止发生命名冲突
Jul 30 Javascript
jquery下利用jsonp跨域访问实现方法
Jul 29 Javascript
浅谈javascript中的作用域
Apr 07 Javascript
JavaScript实现快速排序(自已编写)
Dec 19 Javascript
用JavaScript实现一个代码简洁、逻辑不复杂的多级树
May 23 Javascript
jquery.form.js实现将form提交转为ajax方式提交的方法
Apr 07 Javascript
Javascript中判断对象是否为空
Jun 10 Javascript
JS实现PC手机端和嵌入式滑动拼图验证码三种效果
Feb 15 Javascript
jQuery实现弹幕效果
Feb 17 Javascript
node.js监听文件变化的实现方法
Apr 17 Javascript
微信小程序 自定义弹窗实现过程(附代码)
Dec 05 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
中英文字符串翻转函数
2008/12/09 PHP
JavaScript加强之自定义event事件
2013/09/21 Javascript
js的匿名函数使用介绍
2013/12/11 Javascript
jQuery中empty()方法用法实例
2015/01/16 Javascript
javascript定时器完整实例
2015/02/10 Javascript
javascript学习笔记整理(概述、变量、数据类型简介)
2015/10/25 Javascript
基于Jquery+div+css实现弹出登录窗口(代码超简单)
2015/10/27 Javascript
学习javascript面向对象 javascript实现继承的方式
2016/01/04 Javascript
JS实现的点击表头排序功能示例
2017/03/27 Javascript
JavaScript实现的选择排序算法实例分析
2017/04/14 Javascript
js绑定事件和解绑事件
2017/04/27 Javascript
微信小程序基于slider组件动态修改标签透明度的方法示例
2017/12/04 Javascript
webpack打包并将文件加载到指定的位置方法
2018/02/22 Javascript
写一个移动端惯性滑动&amp;回弹Vue导航栏组件 ly-tab
2018/03/06 Javascript
微信小程序实现页面下拉刷新和上拉加载功能详解
2018/12/03 Javascript
浅谈小程序 setData学问多
2019/02/20 Javascript
多个vue子路由文件自动化合并的方法
2019/09/03 Javascript
[03:12]完美世界DOTA2联赛PWL DAY7集锦
2020/11/06 DOTA
python client使用http post 到server端的代码
2013/02/10 Python
python实现音乐下载器
2018/04/15 Python
selenium python 实现基本自动化测试的示例代码
2019/02/25 Python
python实现微信每日一句自动发送给喜欢的人
2019/04/29 Python
关于Python核心框架tornado的异步协程的2种方法详解
2019/08/28 Python
Django通用类视图实现忘记密码重置密码功能示例
2019/12/17 Python
一文轻松掌握python语言命名规范规则
2020/06/18 Python
详解向scrapy中的spider传递参数的几种方法(2种)
2020/09/28 Python
详解移动端HTML5页面端去掉input输入框的白色背景和边框(兼容Android和ios)
2016/12/15 HTML / CSS
详解HTML5 Canvas标签及基本使用
2020/01/10 HTML / CSS
adidas美国官网:adidas US
2016/09/21 全球购物
法定代表人授权委托书范文
2014/08/02 职场文书
2016年教师学习廉政准则心得体会
2016/01/20 职场文书
申论不会写怎么办?教您掌握这6点思维和原则
2019/07/17 职场文书
小学生作文之《压岁钱的烦恼》
2019/09/27 职场文书
常用的Python代码调试工具总结
2021/06/23 Python
RestTemplate如何通过HTTP Basic Auth认证示例说明
2022/03/17 Java/Android
《辉夜大小姐想让我告白》第三季正式预告
2022/03/20 日漫