一个 vue-cli chrome extension 开发模板,支持同步刷新与 支持 crx 打包

用 vue-cli 开发 Chrome Extension 模板

在本文中,我们将介绍如何使用 vue-cli 创建一个 Chrome 扩展程序模板,并支持同步刷新和打包成 .crx。我们假设您已经熟悉 Vue.js,Chrome Extension 和打包的基础知识。

准备工作

首先,确保您安装了最新版本的 Node.js 和 Vue CLI。

- -- -------
- ---- ------- ----

- -- --- ---
- --- ------- -- --------

接下来,创建一个新的 Vue 项目并添加必要的扩展程序文件。

- ---- --- --
- --- ------ ------------

- ------
- -- ------------

- --------
- ----- ------ -- ----- --------------------

public/manifest.json 文件中,定义你的扩展程序信息,例如名称、描述、版本号、权限等。以下是一个简单的示例:

-
  ------- --- -----------
  ---------- ------
  -------------- ----- ------ ------
  ------------------- --
  -------------- -
    ------
  -
-

现在,让我们安装必要的依赖项。

- --- ------- ---------- --- ------------------------ -------------------
  • crx:用于将扩展程序打包成 .crx 格式。
  • hotreload-webpack-plugin:用于启用热重载和自动刷新。
  • copy-webpack-plugin:用于将静态文件复制到打包后的目录中。

配置 webpack

Vue CLI 使用 webpack 进行构建,我们需要相应地配置 webpack。在根目录下创建一个名为 vue.config.js 的文件,并添加以下内容:

----- --- - ---------------
----- ---- - ----------------
----- ----------------- - -------------------------------
----- ---------------------- - ------------------------------------

-------------- - -
  ----------------- -------- -- -
    -- --------------------- --- -------------- -
      --------------------
        --- ------------------------
          -- ----------
        --
      --
    - ---- -
      --------------------
        --- -------------------
          --------- -- ----- --------- --- --- ---
          -------- - ------------ --- --
        ---
        --- -----
          -------- ----------------------- --------------------
          ------------ ----------------------- --------
          ----------- ----------------------- --------------------
          ----- --- -----------
        --
      --
    -
  --
--

上述代码中,我们:

  1. 导入必要的依赖项 crxpathCopyWebpackPluginHotReloadWebpackPlugin
  2. configureWebpack 方法中,判断当前环境是否是开发模式,如果是,则添加 HotReloadWebpackPlugin 插件;否则,添加 CopyWebpackPluginCrx 插件。其中,Crx 插件用于将扩展程序打包成 .crx 格式。
  3. Crx 插件的选项中,keyFile 用于指定私钥文件位置,contentPath 用于指定需要打包的文件目录,outputPath 用于指定输出文件位置,name 用于指定扩展程序名称。

配置热重载

在开发过程中,我们希望能够自动刷新扩展程序。为此,我们使用 hotreload-webpack-plugin 插件,并在 vue.config.js 文件中添加以下代码:

-------------- - -
  -- ---
  ---------- -
    ------- ----- ------- -- -
      ----- ---- - --------------------
      ------------------------
        -- ----------
      --------------------------
      ------------- ---- ----- -- -
        ----------------------------------------- -----
        -------

----------------------------------------------------------- ----------
---------------------------------------------------------------------------------------
  

猜你喜欢

  • service worker的思考

    Service Worker的思考 Service Worker是一种浏览器独立的JavaScript线程,可以用来实现离线缓存、推送通知等功能。在前端开发中,Service Worker已经成为了一...

    6 年前
  • 利用 CSS 破解 Facebook 加密用户数据

    Facebook 是全球最大的社交媒体平台之一,其保护用户数据安全的能力备受关注。但是,有时候我们可能需要从自己的 Facebook 账户中提取某些个人信息,比如好友列表或收件箱。

    6 年前
  • 带你梳理javascript节流丶防抖是什么以及怎么实现 ttrottle

    带你梳理 JavaScript 节流和防抖是什么以及如何实现 Throttle JavaScript 中的节流(Throttling)和防抖(Debouncing)是常用于优化用户体验和性能的前端技术...

    6 年前
  • Babel:plugin、preset的区别与使用

    Babel 是一个流行的 JavaScript 转译器,可以将最新版本的 JavaScript 代码转换为向后兼容的旧版语法。Babel 的插件和预设是扩展 Babel 能力的主要方式之一。

    6 年前
  • babel-preset-env使用指南

    Babel-Preset-Env 使用指南 当我们开发前端应用程序时,我们通常需要使用最新的 ECMAScript 版本来编写代码。然而,由于不同浏览器对 ECMAScript 版本的支持程度不同,这...

    6 年前
  • 书写良好的 commit message

    如何书写良好的 Commit Message 在前端开发中,使用版本控制工具来管理代码是非常常见的。而每次提交代码时,我们都会被要求填写 commit message。

    6 年前
  • 有了white-space:nowrap;妈妈再也不担心我不会横向滚动布局了

    前言 在前端开发中,我们经常需要实现一些复杂的布局效果。其中,横向滚动布局就是一个比较常见的难点,尤其是当内容长度不确定时,如何保证横向滚动显示成为一个难题。而 white-space: nowrap...

    6 年前
  • 吕小鸣 • Canvas制作点赞送心动画

    吕小鸣 · Canvas制作点赞送心动画 在前端设计中,动态的点赞、送心等特效已成为不少网站和应用中不可或缺的元素。这篇文章将详细介绍吕小鸣所用的Canvas技术实现点赞送心动画的过程,并提供相关示例...

    6 年前
  • JSON Schema 的接口测试实战

    在前端开发中,提供高质量的 API 接口是非常关键的一步。为了确保接口的正确性和可靠性,我们需要进行有效的接口测试。JSON Schema 是一种用于描述 JSON 数据结构的语言,可以用来定义 AP...

    6 年前
  • Bootstrap-table固定列插件,支持右部固定

    Bootstrap-table固定列插件: 右部固定实现方法 Bootstrap-table是一个流行的前端表格插件,提供了许多可定制的功能。其中一项非常有用的功能是固定列,使得在浏览大量数据时,用户...

    6 年前
  • 全面理解 koa-router

    如果您是一名前端开发者,那么您一定听说过 koa 框架。koa 是一个 Node.js 的 web 框架,它使用了 ES6 的 async/await 特性,提供了更加优雅的异步编程方式。

    6 年前
  • 搭建 Private NPM

    在前端开发中,我们经常使用各种第三方的 JavaScript 库和工具来提高开发效率。而 NPM 是最流行的 Node.js 包管理器,可以方便快捷地安装、更新和分享 JavaScript 模块。

    6 年前
  • 一个 API 友好的 vuepress 主题

    一个 API 友好的 VuePress 主题 VuePress 是一个基于 Vue.js 的静态网站生成器,它提供了一个简单易用的文档撰写和发布方式。在使用 VuePress 进行文档编写时,主题的选...

    6 年前
  • 为什么整个前端开发行业如此不稳定?

    为什么整个前端开发行业如此不稳定? 前端开发是一项快速变化的技术工作,随着技术和市场的不断变化,前端开发人员必须不断学习新技术、新框架和新工具。这种快速变化可能会导致前端开发行业的不稳定性。

    6 年前
  • ECMAScript规范的最新动向

    ECMAScript 规范的最新动向 ECMAScript(简称 ES)是 JavaScript 的标准化规范,由 ECMA 国际组织制定。最新的 ECMAScript 规范是 ES2022,它包含了...

    6 年前
  • 前端配置工程师

    前端配置工程师:深入了解前端构建过程 作为一名前端配置工程师,你不仅需要熟练掌握前端技术栈,还需要了解如何构建和优化整个前端项目。在本文中,我们将深入探讨前端构建过程,并为初学者提供指导意义以及示例代...

    6 年前
  • 完全理解HTTPS如何做到传输安全

    完全理解 HTTPS 如何做到传输安全 HTTPS (Hyper Text Transfer Protocol Secure) 是一种通过网络进行通信的安全协议,它使用了 SSL/TLS 协议来保证数...

    6 年前
  • 更优雅的实现元素是否在viewport监听(新api)

    更优雅的实现元素是否在viewport监听(新API) 随着Web应用的不断发展,越来越多的开发者开始关注用户体验。其中之一就是元素是否在viewport中的监听,在这个需求下,W3C提供了新的Int...

    6 年前
  • yukar - Chrome 插件:JavaScript 代码编辑器

    Yukar - 一个功能强大的 Chrome 插件:JavaScript 代码编辑器 Yukar 是一个 Chrome 插件,它提供了一个内置的 JavaScript 代码编辑器,可以帮助前端开发人员...

    6 年前
  • Service Worker Cookbook | 由 Mozilla 及贡献者共同撰写的一本关于 Service Worker 的实用指南

    Service Worker Cookbook: 实用指南及示例代码 Service Worker 是一种 Web API,用于在后台运行脚本并处理网络请求。它可以帮助开发者实现离线访问、推送通知、性...

    6 年前

相关推荐

    暂无文章