当前位置:   article > 正文

vite+ts构建搭建谷歌插件开发环境_vue+vite开发谷歌插件

vue+vite开发谷歌插件

最近,根据需求开发了一款谷歌插件。所用前端脚手架就是目前最火的vite,以及typescript.本文将着重介绍利用vite+ts的搭建谷歌插件开发的具体过程。很多教程都说的是谷歌扩展v2的配置,本文是 根据最新的谷歌扩展文档开发的v3的开发。

一、创建一个vite项目:

pnpm create vite

二、在 src资源目录里面文件配置

1、在src资源目录里面创建一个manifest.ts ,具体配置:

  1. const manifest = {
  2. manifest_version: 3,
  3. homepage_url: 'https://demo.xxx.com',
  4. name: 'chome extension demo ',
  5. description: 'This is a demo',
  6. version: '1.0',
  7. icons: {
  8. '16': 'icon/icon-16.png',
  9. '32': 'icon/icon-32.png',
  10. '48': 'icon/icon-48.png',
  11. '64': 'icon/icon-64.png',
  12. '128': 'icon/icon-128.png'
  13. },
  14. action: {
  15. default_title: 'chrome demo',
  16. default_popup: './index.html',
  17. default_icon: {
  18. '16': 'icon/icon-16.png',
  19. '32': 'icon/icon-32.png',
  20. '48': 'icon/icon-48.png',
  21. '64': 'icon/icon-64.png',
  22. '128': 'icon/icon-128.png'
  23. }
  24. },
  25. /* externally_connectable: {
  26. matches: ['*://*.example.com/*', '*://localhost/*'],
  27. ids: ['*']
  28. }, */
  29. content_security_policy: {
  30. extension_pages:
  31. "script-src 'self'; object-src 'self'; frame-ancestors 'none';"
  32. },
  33. externally_connectable: {
  34. ids: ['*']
  35. },
  36. permissions: ['storage', 'activeTab', 'scripting', 'tabs'],
  37. background: {
  38. service_worker: './background.ts',
  39. type: 'module'
  40. },
  41. // content_scripts: [
  42. // {
  43. // matches: ['http://*/*', 'https://*/*', '<all_urls>'],
  44. // js: ['background.ts']
  45. // css: ['content.styles.css']
  46. // }
  47. // ],
  48. commands: {
  49. _execute_action: {
  50. suggested_key: {
  51. windows: 'Alt+Shift+N',
  52. mac: 'Alt+Shift+N',
  53. chromeos: 'Alt+Shift+N',
  54. linux: 'Alt+Shift+N'
  55. }
  56. }
  57. },
  58. options_page: './options.html'
  59. };
  60. export default manifest;

如果还需要其他配置可以查看谷歌扩展的官方文档

谷歌插件自定义的图标可以放在public目录下

 

2、安装@samrum/vite-plugin-web-extension插件:

pnpm add @samrum/vite-plugin-web-extension -D

 3、配置vite.config.ts文件

  1. import { defineConfig } from 'vite';
  2. import vue from '@vitejs/plugin-vue';
  3. import webExtension from '@samrum/vite-plugin-web-extension';
  4. import nodePolyfills from 'rollup-plugin-polyfill-node';
  5. import { resolve } from 'path';
  6. import manifest from './src/manifest';
  7. // https://vitejs.dev/config/
  8. export default ({ mode, command }) => {
  9. console.log(mode, command);
  10. return defineConfig({
  11. root: './src/',
  12. base: '/',
  13. envDir: '../',
  14. publicDir: '../public',
  15. plugins: [
  16. vue(),
  17. webExtension({
  18. manifest: {
  19. ...manifest
  20. }
  21. })
  22. ],
  23. define: {
  24. 'process.env': {}
  25. },
  26. server: {
  27. host: '0.0.0.0',
  28. port: 30,
  29. strictPort: true,
  30. open: true
  31. },
  32. css: {
  33. devSourcemap: true
  34. },
  35. rollupOptions: {
  36. plugins: [nodePolyfills()]
  37. },
  38. resolve: {
  39. alias: {
  40. '@': resolve(__dirname, 'src')
  41. }
  42. },
  43. build: {
  44. outDir: '../dist',
  45. emptyOutDir: true,
  46. cssCodeSplit: true,
  47. sourcemap: true,
  48. rollupOptions: {
  49. input: {
  50. main: resolve(__dirname, './src/index.html'),
  51. options: resolve(__dirname, './src/options.html')
  52. },
  53. output: {
  54. chunkFileNames: 'static/js/[name]-[hash].js',
  55. entryFileNames: 'static/js/[name]-[hash].js',
  56. assetFileNames: 'static/[ext]/name-[hash].[ext]'
  57. }
  58. }
  59. }
  60. });
  61. };

完成以上配置后,使用pnpm dev启动本地开发,本地开发完成后,使用打包命令:pnpm build,打包出dist文件夹。打开谷歌扩展列表chrome://extensions/,或者在设置下面点击扩展程序进入。

 点击已解压的扩展程序

选中刚才打包好的dist文件夹,进行上传。

 

这样扩展程序就导入到了谷歌扩展当中 

点击那个树叶一样的按钮,找到刚才导入的扩展固定,就可以看到在扩展栏目里面 看到刚才 导入的demo

具体代码可以查看 chrome-extension-demo

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/390311
推荐阅读
相关标签
  

闽ICP备14008679号