详解vue-cli3开发Chrome插件实践

yizhihongxing

详解vue-cli3开发Chrome插件实践

前言

Vue-CLI 3是Vue.js发布的脚手架构建工具。它易于使用,且支持自定义配置,本文就是基于Vue-CLI 3来开发Chrome插件的。

环境

在开始之前,确保本地已经安装了Node.js和Vue-CLI 3,安装方法如下:

1.下载 Node.js:https://nodejs.org/en/download/ 下载并安装;

2.安装 Vue-cli 3:在命令行下输入以下命令:

npm install -g @vue/cli

初始化项目

创建一个新项目并进入项目目录。

1.初始化项目,则命令行输入:

vue create my-plugin

2.在初始化过程中选择手动配置,选择将插件构建为独立的 Vue 组件库,静态资源目录选择public。

配置

安装必要插件:

npm install --save vue-chrome-extension

在src目录下创建background.js文件,用来监听事件和请求:

console.log('background:', 'OK')

在src目录下创建popup.vue文件,用来渲染插件:

<template>
  <div>
    {{ message }}
  </div>
</template>

<script>
  export default {
    data () {
      return {
        message: 'Hello world!'
      }
    }
  }
</script>

更新Vue.config.js配置文件

const ChromeExtensionReloaderPlugin = require('webpack-chrome-extension-reloader');

module.exports = {
  configureWebpack: {
    plugins: [
      new ChromeExtensionReloaderPlugin({
        entries: {
          background: 'background',
          popup: 'popup'
        }
      })
    ]
  }
}

打包

修改webpack配置文件,将output.publicPath字段改为"./",webpack会自动根据html根目录展开打包文件。

在命令行下输入以下命令打包:

npm run build

此时,打包文件会生成在根目录的 dist 文件夹内。

加载插件

  1. 打开谷歌浏览器,输入“chrome://extensions” 并进入扩展程序页面。

  2. 把 dist 目录下的文件都放进新建的插件文件夹,然后选择“加载已解压的扩展程序”,选择插件所在的文件夹即可。

示例

下列举两个例子,一个是获取当前标签信息,另一个是获取当前窗口信息。

获取当前标签信息

在popup.vue中添加一个按钮,并绑定click事件:

<template>
  <div>
    <button @click="getTabInfo">获取当前标签信息</button>
    <p>{{ message }}</p>
  </div>
</template>

<script>
const getCurrentTabInfo = () => {
  return new Promise((resolve) => {
    chrome.tabquery.getCurrentTabInfo(resolve)
  })
}

export default {
  data () {
    return {
      message: ''
    }
  },
  methods: {
    async getTabInfo() {
      const tab = await getCurrentTabInfo();
      this.message = `当前标签信息:${JSON.stringify(tab)}`
    }
  }
}
</script>

在manifest.json中添加需要的权限:

"permissions": [
  "tabs"
],

获取当前窗口信息

在popup.vue中添加一个按钮,并绑定click事件:

<template>
  <div>
    <button @click="getWindowInfo">获取当前窗口信息</button>
    <p>{{ message }}</p>
  </div>
</template>

<script>
const getCurrentWindowInfo = () => {
  return new Promise((resolve) => {
    chrome.windows.getCurrent(resolve)
  })
}

export default {
  data () {
    return {
      message: ''
    }
  },
  methods: {
    async getWindowInfo() {
      const window = await getCurrentWindowInfo();
      this.message = `当前窗口信息:${JSON.stringify(window)}`
    }
  }
}
</script>

在manifest.json中添加需要的权限:

"permissions": [
  "windows"
],

结语

以上是使用Vue-CLI 3开发Chrome插件的详细过程,在本文中,我们简单介绍了Vue-CLI 3的使用以及使用插件开发Chrome扩展程序的方法。如果您还有其他的问题或者不理解的地方,请在评论区留言。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解vue-cli3开发Chrome插件实践 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • vue如何搭建多页面多系统应用

    要搭建多页面多系统应用,我们需要考虑以下几个方面: 如何配置webpack多入口 如何分别打包多个页面 如何创建多个vue实例 如何在不同的页面中加载不同的组件 下面我们逐一讲解: 1. 如何配置webpack多入口 我们可以在webpack.config.js中配置entry来指定多个入口文件,示例代码如下: module.exports = { entr…

    Vue 2023年5月28日
    00
  • vue中异步函数async和await的用法说明

    下面就给您详细讲解下“vue中异步函数async和await的用法说明”的完整攻略。 1.什么是异步函数 在Vue中,经常会使用异步函数来处理异步操作,比如通过Ajax获取远程的数据、读取本地数据库等等。异步函数是一种特殊的函数,可以使函数的执行不阻塞主线程,并且可以在异步操作完成后通过回调函数来处理结果。在Vue中,异步函数通常使用Promise或asyn…

    Vue 2023年5月28日
    00
  • Vue3生命周期函数和方法详解

    Vue3生命周期函数和方法详解 生命周期函数 Vue3中的生命周期函数有如下: beforeCreate 在实例准备被创建之前,也就是数据观测和初始化事件还没开始的时候触发。在这个阶段无法获取到 data 和 methods 中的数据。此时我们可以在此阶段中做一些初始化的操作,如全局变量的初始化。 export default { beforeCreate(…

    Vue 2023年5月28日
    00
  • Sublime Text新建.vue模板并高亮(图文教程)

    下面我将为你详细讲解“Sublime Text新建.vue模板并高亮(图文教程)”的攻略: Sublime Text新建.vue模板并高亮(图文教程) 1. 下载Vue Syntax Highlight插件 首先,在Sublime Text中安装Vue Syntax Highlight插件。可以选择在菜单栏中选择“Preferences” -> “Pa…

    Vue 2023年5月28日
    00
  • vue3的watch和watchEffect你了解吗

    当我们在使用Vue.js开发应用时,经常需要监听数据的变化并做出相应的响应,在Vue.js中,我们可以使用watch和watchEffect这两个响应式API来实现数据的监听。 watch watch是Vue.js中的一个响应式API,用于监听指定数据的变化并做出相应的响应。在Vue3中,我们可以通过watch函数来创建一个监听器。 watch的基本用法 以…

    Vue 2023年5月27日
    00
  • echarts报错:Error in mounted hook的解决方法

    下面是关于”echarts报错:Error in mounted hook的解决方法”的完整攻略。 什么是“echarts报错:Error in mounted hook”的问题? 当使用 echarts 绘制图表时,有时在控制台会看到一个错误提示:“Error in mounted hook”,通常提示中还会包含一些错误信息,比如:“Cannot read…

    Vue 2023年5月27日
    00
  • 关于vue3中setup函数的使用

    下面开始讲解关于Vue3中setup函数的使用的完整攻略。 一、什么是setup函数 setup是Vue3中引入的全新选项,它是组件实例化之前最先执行的一个函数。Vue3中设计setup函数的目的是要取代Vue2中的data、created、beforeCreate三个选项,将它们的功能都整合在setup函数中。新的API可以更好地应对TS等类型化语言的需求…

    Vue 2023年5月28日
    00
  • vue中的H5移动端项目 真机测试配置方式

    配置Vue H5移动端项目在真机上进行测试有以下几个步骤: 步骤一:检查移动设备与电脑是否连接同一WiFi或有线网络 确保移动设备与调试电脑处于同一WiFi或有线网络环境中,且两者可以互相访问。这可以使用ping命令检查网络是否正常。 示例: 假设移动设备的IP地址为192.168.0.100,调试电脑的IP地址为192.168.0.101。在电脑的命令行中…

    Vue 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部