使用 vue cli 4 开发 chrome 插件

想要更好的阅读体验,可以转我的个人博客: nonlinearthink

创建 vue cli 4 项目

创建一个项目

vue create todolist

勾选 BabelTypeScriptCSS Pre-processorsLinter / Formatter

? Please pick a preset: Manually select features
? Check the features needed for your project:
 ◉ Babel
❯◉ TypeScript
 ◯ Progressive Web App (PWA) Support
 ◯ Router
 ◯ Vuex
 ◉ CSS Pre-processors
 ◉ Linter / Formatter
 ◯ Unit Testing
 ◯ E2E Testing

这里,CSS 预处理器随意,我选了 Sass/SCSS (with dart-sass)

另外,linter / formatter 中的 TSLint 已经不再维护,建议使用 ESLint + Prettier

{% note warning %}
不要使用 class-style component syntax,见 vue-cli-plugin-chrome-ext
{% endnote %}

添加 chrome-ext 插件

vue add chrome-ext

记得这里勾选 ts:

? Name of the Chrome Extension? todolist
? Description for the Chrome Extension? chrome extension
? Version for the Chrome Extension? 0.0.1
? javascript or typescript? 
  js 
❯ ts 

出现了一个错误:

⠋  Running completion hooks...error: Require statement not part of import statement (@typescript-eslint/no-var-requires) at vue.config.js:1:27:
> 1 | const CopyWebpackPlugin = require("copy-webpack-plugin");
    |                           ^
  2 | const path = require("path");
  3 | 
  4 | // Generate pages object

这是因为 eslint 不允许 commonjs 的语法,考虑到 vue.config.js 是一个比较特殊的文件,我们应该把它放到 .eslintignore 文件中,让 eslint 忽略 它。

.eslintignore 中写入:

vue.config.js

vue-cli-plugin-chrome-ext 创建不是 SPA 应用,chrome 插件有很多界面,所以是每一个界面分别编译。

比如,src/popup 是一个界面,src/options 也是一个界面。

这样,原先很多文件都没用了,我们可以把它们删掉,分别是 src/main.tssrc/App.vue

热重载开发

使用 npm run build-watch 可以使用热重载的方式进行开发。

运行后会生成一个 dist 文件夹,每次你更改代码都会重新编译和加载一次。

将 dist 导入到 chrome 插件中

进入 chrome://extensions/,选择和加载 dist 文件夹进来。

todolist extension

加载成功之后,记得去右上角管理界面开启 popup 界面 ( 新版本 chrome )。

manage extensions

现在,代码打完之后就能立马在 chrome 的 popup 视图里看到渲染结果。

使用 UI 组件

虽然 vue 是跑起来了,但是如果不能导入组件,那也没用。

ant design vue 为例,我门来测试一下。

npm i --save ant-design-vue

在 popup 界面导入

src/popup/index.ts 中添加以下内容:

import Antd from 'ant-design-vue';
import 'ant-design-vue/dist/antd.css';
Vue.use(Antd);

Vue.config.productionTip = false;

前面我们说过,src文件夹下面的每一个文件夹代表了一个页面,每个页面都有对应的 index.ts(相当于main.js)index.htmlApp.vue

也就是说,我们如果要使用UI库,不是在一个全局的 main.js 里面配置一遍就好了,我们需要在每一个页面的文件夹下的 index.ts 中都导入。

这里我们仅在 popup 界面下导入了,如果你需要在 options 界面中也使用,则需要去 src/options/index.ts 下面一样导入一遍。

编写一个简单的 popup 界面

使用 ant designcard 组件来测试一下,是否可以使用。

界面的主要代码,应该写在 App/App.vue 目录中。

<template>
  <div class="main_app">
    <a-card title="Jaycee Chow">
      a good coder
    </a-card>
  </div>
</template>

<script lang="ts">
export default {
  name: "app"
};
</script>

<style>
.main_app {
  font-family: "Avenir", Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
  height: 500px;
  width: 300px;
  padding: 10px;
}
</style>

效果大概这样子:

demo

可见导入成功了。

待解决的问题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Vue开发Chrome插件需要以下几个步骤: 1. 创建一个Vue项目:首先需要安装Vue CLI来创建一个新的Vue项目。在命令行中运行如下命令来创建项目: ``` vue create chrome-extension-project ``` 根据提示选择需要的配置项,如Babel和Router。创建完成后,进入项目目录: ``` cd chrome-extension-project ``` 2. 配置Chrome插件:在项目根目录下创建一个`manifest.json`文件,该文件用于配置插件的基本信息,例如插件名称、描述、图标、权限等。详细的配置可以参考Chrome官方文档。 3. 开发Vue组件:使用Vue开发插件的界面。可以在`src`目录下创建Vue组件,并在需要的地方使用它们。可以使用Vue Router来管理插件的不同页面或者使用Vuex来处理全局状态。 4. 构建插件:在命令行中运行如下命令来构建插件: ``` npm run build ``` 该命令会将Vue项目打包成一组静态文件,可以在`dist`目录中找到构建好的插件文件。 5. 导入插件:在Chrome浏览器中打开扩展程序页面(在地址栏输入`chrome://extensions`),点击右上角的“开发者模式”,然后点击“加载已解压的扩展程序”,选择之前构建好的插件文件夹(即`dist`目录)。 6. 调试和发布:在Chrome浏览器中调试已加载的插件,可以通过“检查视图”来调试Vue组件。如果插件开发完成并通过测试,可以在Chrome Web Store上发布插件,供用户下载和使用。 总结起来,Vue开发Chrome插件的过程可以概括为:创建Vue项目,配置插件信息,开发Vue组件,构建插件文件,导入插件Chrome浏览器,调试并最终发布。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

真实的hello world

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值