产品经理又开始为难我了???我。。。。(一)

简介: 前言大家好,我是Fly哥。最近做项目的时候,就是产品经理给的图总是很大,不压缩。每天要处理这些图片真的很累哇。于是一怒之下写下了这个「vscode 插件」。「插件核心功能是压缩,然后上传图片」。压缩的网站其实就是「tinypng」 这个网站然后图片压缩后,然后再上传到cdn上,然后然后这个压缩过的url 直接放到我们的粘贴板上。下面跟着我的步伐一步一步来写实现它。先看效果图:图片效率对比开发这个主要是提高团队开发效率, 绝不是为了炫技。看图:图片image-20211017224316386image-20211017224316386需求分析可在vscodde的set

前言



大家好,我是Fly哥。最近做项目的时候,就是产品经理给的图总是很大,不压缩。每天要处理这些图片真的很累哇。于是一怒之下写下了这个「vscode 插件」「插件核心功能是压缩,然后上传图片」。压缩的网站其实就是「tinypng」 这个网站然后图片压缩后,然后再上传到cdn上,然后然后这个压缩过的url 直接放到我们的粘贴板上。下面跟着我的步伐一步一步来写实现它。先看效果图:


image.png


效率对比



开发这个主要是提高团队开发效率, 绝不是为了炫技。看图:

image.png


image.gifimage-20211017224316386


image-20211017224316386


需求分析



  1. 可在vscodde的setting中配置上传所需的参数,可以根据个人的需求单独进行配置;


  1. 2.在开发过程中可在编辑器中直接选择图片并上传到阿里云将图片链接填写到光标位置;


中文文档



一个好的文档可以帮助我们更容易的开发:如果英文比较好的同学可以直接看Vscode英文文档,这里api会比较全,可以找到更简洁的方案实现功能;不过我的话,还是花很久时间找了这篇比较全的中文文档


搭建项目



vscode 插件的开发需要全局安装脚手架:


npm install -g yo generator-code
复制代码


安装成功后,直接使用对应命令 「yo code」 来生成一个插件工程:


image.gifvscode开始这个页面

image.png


vscode开始这个页面


这就开始脚手架页面了,可以选择自己习惯的配置。输入对应的配置 然后 就创建了对应的项目了。


我们看下项目结构:


image.gif插件结构


插件结构


插件运行



这时候我们先要去测试下我的这个插件到底是不是能够成功运行。在项目根目录按住F5 然后运行 「vscode extension」 ,这时候会出现一个新的vscode 窗口,但是我这里遇到的一个问题就是这个:


image.gif插件

image.png


插件


我大概理解了下就是vscode 插件的依赖版本比较低:


目前是:


image.png


插件

image.png

插件


这上面说的很清楚 vscode扩展指定 与其兼容的 vscode 版本兼容 很显然我这里太高了, 给他降级。然后给他换成1.60.2 完美解决


插件运行——成功演示



ok, 怎么查看自己查看插件有没有成功运行呢, 分为3步


  1. F5 开始调试 —— 产生一个新的调试窗口


  1. 在新的窗口—— command + shift + P 找到 hello word


  1. 点击运行看见弹窗 显示 表示弹窗运行成功


直接看下面的gif 图吧:

image.png


image.gifMay-29-2022 13-28-35


插件开发——配置参数



配置插件的属性面板, 这个主要是要在package.json 配置一些参数


image.gif配置参数

image.png

配置参数


第一个参数我们稍后再讲其实就是对应你注册的自定义command, 下面的配置 其实就是对应插件属性面板一些参数,然后你可以通过vscode 的一些api 可以获得你配置的这些参数


下面我是我配置的参数,你可以会根据插件自定义去调整


"properties": {
    "upload_image.domain": {
      "type": "string",
      "default": "",
      "description": "设置上传域名"
    },
    "upload_image.accessKey": {
      "type": "string",
      "default": "",
      "description": "设置oss上传accessKey"
    },
    "upload_image.secretKey": {
      "type": "string",
      "default": "",
      "description": "设置oss上传secretKey"
    },
    "upload_image.scope": {
      "type": "string",
      "default": "",
      "description": "设置oss上传上传空间"
    },
    "upload_image.gzip": {
      "type": "boolean",
      "default": "true",
      "description": "是否启用图片压缩"
    }
  }


大概就是这几个参数, 然后我们测试下同样打开f5 然后在新窗口 找到设置然后找到扩展, 设置项其实就是对应我们的 上面的「title」


压缩图片。


我们看下效果:


image.gif效果

image.png

效果



相关文章
|
设计模式 缓存
二十三种设计模式全面解析-代理模式(Proxy Pattern)详解:探索隐藏于背后的力量
二十三种设计模式全面解析-代理模式(Proxy Pattern)详解:探索隐藏于背后的力量
746 1
|
存储 区块链
区块链技术在版权保护与数字内容分发中的创新
区块链技术在版权保护与数字内容分发中的创新
|
10月前
|
人工智能 自然语言处理 算法
【通义】AI视界|OpenAI最新发布!ChatGPT搜索功能强势来了,挑战谷歌?
本文由【通义】自动生成,精选24小时内的重要资讯:OpenAI推出ChatGPT搜索功能挑战谷歌,微软披露130亿美元投资OpenAI,Reddit首次盈利股价暴涨20%,软银CEO孙正义看好英伟达及“超级AI”前景,谷歌云与沙特PIF共建全球AI中心。更多内容请访问通通知道。
|
11月前
|
SQL 运维 Java
记一个折磨了我一天半的 Bug
一杯茶,一根烟,一个 Bug 一天根本改不完。
113 1
|
11月前
|
机器学习/深度学习 PyTorch 算法框架/工具
探索PyTorch:张量的类型转换,拼接操作,索引操作,形状操作
探索PyTorch:张量的类型转换,拼接操作,索引操作,形状操作
|
监控 测试技术
软件测试中的风险管理:如何避免潜在缺陷
【8月更文挑战第5天】在软件开发的生命周期中,测试阶段扮演着至关重要的角色。本文将深入探讨软件测试中的风险管理,包括风险识别、评估和缓解策略。我们将通过具体案例分析,揭示如何在早期阶段预防和减少潜在的软件缺陷,以及如何通过有效的测试计划和执行来保障产品质量。文章旨在为读者提供一套系统的风险管理框架,帮助他们在软件开发过程中识别和应对各种测试风险。
417 3
|
存储 关系型数据库 MySQL
MySQL数据库——约束(概述、约束演示、外键约束、删除/更新行为)
MySQL数据库——约束(概述、约束演示、外键约束、删除/更新行为)
187 0
|
图形学
【用unity实现100个游戏之15】开发一个类保卫萝卜的Unity2D塔防游戏3(附项目源码)
【用unity实现100个游戏之15】开发一个类保卫萝卜的Unity2D塔防游戏3(附项目源码)
513 0
|
存储 Oracle 关系型数据库
Oracle数据库快速入门
Oracle数据库快速入门
224 0
|
NoSQL 关系型数据库 MySQL
别忘了,今天是你的节日(波场充值回调)
别忘了,今天是你的节日(波场充值回调)
411 0
别忘了,今天是你的节日(波场充值回调)