Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >通过 WeCOS 进行小程序瘦身

通过 WeCOS 进行小程序瘦身

原创
作者头像
Jason
修改于 2017-12-18 03:58:48
修改于 2017-12-18 03:58:48
4.6K4
举报

尽管 4 月份微信官方将小程序的大小限制从 1M 放开到 2M,但是对于使用大量图片的小程序(电商等)来说,2M 的限制还是显得拮据。基于这种场景,腾讯云微信小程序解决方案团队开发了 WeCOS 小程序瘦身工具,依托腾讯云强大的云对象储存(COS),提供自动将小程序内部的图片自动上传到 COS,并将图片的相对路径改为线上 URL,这样就可以大大的缩减小程序的大小,并且无需过多繁琐的上传步骤。

现在我们就一起来看看如何使用吧!假设我们有一个开发好的小程序开发目录 App,目录大小为10M。目录下有大量图片且代码中有对图片资源的引用。为了能够上传并正常运行项目代码,下面来示范如何使用腾讯云 WeCOS 来解决项目包过大的问题。项目目录如图。

接下来只需要 3 步,就可以完成小程序瘦身。

一、前期准备

1. 注册腾讯云账号,开通 COS 并创建 Bucket。

2. 在本机上安装 Node.js

二、安装 WeCOS 并创建配置

打开命令行(开始-运行-CMD-回车),使用 NPM 安装 WeCOS。如图所示:

代码语言:txt
AI代码解释
复制
npm install wecos -g

在与开发目录app 同目录下创建一个 wecos.config.json 配置文件,在配置里填写基本的配置信息。

wecos.config.json 里填写了最基本的配置项。 其中,

  • appDir 指定了小程序开发目录。
  • appid 为腾讯云账号的appid。
  • bucketname 是为存储图片创建的 bucket 的名称,这里是名为 weixintest 的 bucket。
  • folder 可以指定到 bucket 下的某个目录,本文指定到 /wxtest 目录下。
  • region 是指定上传到 COS 的指定地区,这里指定为 tj ,即天津。目前COS 支持天津、上海、广州。
  • secret_keysecret_id是账户密钥,用户可以自行到腾讯云 COS 控制台上获取。

以上信息指定了开发目录以及图片要上传到的 COS 的地址,完成这些配置,基本上已经完工。

三、运行瘦身工具

在命令行中执行 wecos 命令。

可以看到,命令行显示项目中的三个图片上传成功。翻看项目目录,发现图片已经被删除,代码中的图片引用也被换成了线上的地址,项目包一下子小了。同时,WeCOS 很贴心的在开发项目外生成了个 wecos_backup 目录,来保存原来的图片作为备份。除此之外,WeCOS 默认启用监听模式,这是为了让开发过程中无感知,当我们不再进行项目开发,停止运行 WeCOS 即可。

被处理后的整个项目目录只剩下不到5KB,用微信小程序开发者工具预览小程序发现除了图片部分的更改,其他部分跟处理之前没有什么差别。此时,可以重新上传我们的小程序代码,代码很顺利的上传成功了。

到这里我们的瘦身也就基本完成了,但是 WeCOS 的能力还不仅于此,还有一些高级功能欢迎你来探索:

设置图片后缀

有些时候,我们需要限制上传图片的格式,例如只允许 jpg 格式,可以通过WeCOS提供的图片后缀配置项来定义 WeCOS默认支持 jpg,png,gif 三种格式,假如还需要添加其他格式,例如 webp,可以在该配置项中添加

代码语言:txt
AI代码解释
复制
"uploadFileSuffix": [".jpg",".png",".gif",".webp"]

设置图片黑名单

开发过程中,某些特定的图片我们不希望被上传,可以通过 WeCOS 的黑名单配置来解决这个问题,配置后上传程序会自动忽略掉这些图片 黑名单配置支持目录或具体到文件名的写法:

代码语言:txt
AI代码解释
复制
"uploadFileBlackList": ["./images/logo.png", "./logo/"]

自定义域名

如果希望 COS 文件链接使用自定义的域名,可以配置 targetHost 代替默认域名,可以省略 http://

代码语言:txt
AI代码解释
复制
"targetHost": "http://example.com"

如果代码中的图片链接想换一个域名,可以配置 replaceHost targetHost 来实现。

代码语言:txt
AI代码解释
复制
"replaceHost": "

开启图片压缩

图片上传到 COS 之后虽然大大减轻了程序包的大小,但如果图片自身体积过大,访问速度也会影响到用户体验 WeCOS 还额外提供了基于腾讯云万象优图的图片压缩功能。首先,需要在万象优图控制台创建 COS 的同名 bucket。然后,开启该选项,资源将被压缩后上传(注:如果图片已经小到一定程度,压缩后大小可能不会变化)

代码语言:txt
AI代码解释
复制
"compress": true

设置实时监听

WeCOS 默认实时监听项目目录变化,自动处理图片资源,在开发过程中,如果觉得实时监听不方便,或者只需要一次性处理就停止,可以修改该配置,程序将只会执行一次后退出

代码语言:txt
AI代码解释
复制
"watch": false

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
4 条评论
热度
最新
AccessDenied 报权限不对,可是我对此用户对cos的权限完全放开了啊
AccessDenied 报权限不对,可是我对此用户对cos的权限完全放开了啊
回复回复点赞举报
upload: NewFace\images\lips2.png_http_client.js:128 throw new errors.TypeError('ERR_UNESCAPED_CHARACTERS', 'Request path'); 请问楼主是什么问题呢?
upload: NewFace\images\lips2.png_http_client.js:128 throw new errors.TypeError('ERR_UNESCAPED_CHARACTERS', 'Request path'); 请问楼主是什么问题呢?
回复回复点赞举报
使用wecos 命令后 一直报这个错误 是什么问题呢 感谢楼主
使用wecos 命令后 一直报这个错误 是什么问题呢 感谢楼主
回复回复点赞举报
upload: app\pages\images\add_note.pngevents.js:160 throw er; // Unhandled 'error' event ^Error: read ECONNRESET at exports._errnoException (util.js:1018:11) at TCP.onread (net.js:572:26)
upload: app\pages\images\add_note.pngevents.js:160 throw er; // Unhandled 'error' event ^Error: read ECONNRESET at exports._errnoException (util.js:1018:11) at TCP.onread (net.js:572:26)
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
三步瘦身,做名副其实的「小程序」
galen
2017/01/16
2.7K0
三步瘦身,做名副其实的「小程序」
对象存储COS-防盗刷指引
近年来,越来越多的用户在搭建网站或图床时将图片视频等资源上传到对象存储COS,提升了访问稳定性的同时降低了服务器的存储空间压力,但随之而来的流量盗刷、图片盗链问题也困扰着不少开发者,一旦存储空间被恶意访问,会产生高额的流量费用,产生不必要的纠纷。这类问题实际上可以通过多种手段来防护,本文将主要介绍一些常见的防护手段,帮助开发者合理配置存储桶,建立安全机制,降低因类似问题带来的大额资金损失的风险。
云存储
2023/09/22
1.9K0
对象存储COS-防盗刷指引
稳定且高性价比!腾讯云图床服务来了!
图床服务,提供图片存储、图片加工处理、图片全网分发等功能,为全球无数的博客网站和社区论坛提供了后端图片服务支撑。
云存储
2022/03/28
10.4K0
稳定且高性价比!腾讯云图床服务来了!
微信小程序基于万象优图实现图片 OCR
Jason
2017/12/18
12.2K5
微信小程序基于万象优图实现图片 OCR
使用腾讯云 CDN 、COS 以及万象优图实现HTTP/2样例
本文主要介绍了HTTP/2对比HTTP/1.1在性能上的突出优势,通过支持请求与响应的多路复用来达到低延迟的效果,同时实现了一个在线的对比样例,并具体介绍了使用腾讯云CDN,COS,以及万象优图搭建这个样例的过程。如果你的网站还没使用HTTP/2,赶快来试一试吧!
腾讯云CDN团队
2017/05/15
6.5K0
WeApp-Workflow: 基于Gulp 的微信小程序前端开发工作流
WeApp-Workflow 是Jeff 在开发个人微信小程序“DeveWork极客” 过程中积累总结而来的一个基于Gulp4 的,专门用于开发微信小程序的前端开发工作流。旨在通过自动化的方式解决微信小程序开发过程中写前端代码的痛点。 简介 进行微信小程序开发,必须用官方的“微信web 开发者工具”,但这个工具的编辑器功能跟专业的编辑器比起来就差强人意了。后来发现可以直接用 编辑器写代码 + “微信web 开发者工具”做预览功能 的组合方式进行开发,嗯开发舒适度好了点。 微信小程序自己搞了一套CSS 的轮子
Jeff
2018/01/22
1.7K0
WeApp-Workflow: 基于Gulp 的微信小程序前端开发工作流
【玩转腾讯云】腾讯云对象存储COS + 数据万象CI = 完善的图片解决方案
在日常开发当中,我们必然会遇到一些图片存储问题,例如用户头像、聊天发生的图片等,而这些图片资源存储是个问题,普遍做法都是直接落在服务器上进行存储,而我推荐的是图片资源的存储直接上云使用云存储,本地可以保留备份,读取数据走云存储,同时可以增加CDN等。
沈唁
2020/03/27
8.8K11
【玩转腾讯云】腾讯云对象存储COS + 数据万象CI = 完善的图片解决方案
数据万象 CI 图片瘦身,实现超高压缩与视觉无损两全
据统计,一个人获得的信息大约有75%来自视觉,而图片是人们最主要的信息源。进入信息化时代,人们越来越依靠计算机获取和利用信息,而数字化后的多媒体信息具有海量性,大量的图片信息会给存储器的存储容量,通信干线信道的带宽,页面加载速度,以及计算机的处理速度增加极大的压力。这时对图片信息进行有效的压缩处理无疑会极大的降低压力,并且显著提升页面加载速度。
云存储
2020/10/21
1.4K0
数据万象 CI 图片瘦身,实现超高压缩与视觉无损两全
轻量对象存储 LighthouseCOS实践
如今互联网时代在高速发展,对网站的访问速度越来越高了,往往在图片加载的时候,会遇到卡顿、超时、缓慢的情况产生,从而需要将大量的文本类资源(如css、html、图片、txt文本)都可以通过云储存为商户实现了快捷稳定的服务。
用户10585271
2024/02/13
6.7K8
轻量对象存储 LighthouseCOS实践
开发 | 手把手,教你为小程序添加「上传图片」功能
很多小程序都为用户提供图片上传功能。这时候,使用一些「对象存储」云服务,也许是最快、最经济的选择。
知晓君
2018/07/27
2.8K0
数据万象AVIF图片压缩 - 小程序省流量利器
微信小程序因其便捷的开发环境和天然的微信生态,使得越来越多企业平台通过小程序建立自己的业务。在小程序上使用图片非常广泛,但传统格式图片(如 JPG/PNG)占用空间大,加载速度慢,可能导致昂贵的图片流量支出。近年来,AVIF 图片以高压缩率、优良画质成为省流量的新选择。本文将介绍如何通过数据万象(CI,Cloud Infinite)的图片压缩能力,解决使用 AVIF 图片的疑虑,助力快速升级小程序,节省图片流量。
云存储
2023/07/16
5100
数据万象AVIF图片压缩 - 小程序省流量利器
腾讯云数据万象CI助力企业解决图片处理需求!
数据上云已经成为了一个必然趋势。企业将数据上传至“对象存储COS”,确保数据的高可用高可靠,随时随地管理,并使用本文的主人公“数据万象CI”解决了各式各样的图片处理需求。
云存储
2020/03/16
3.7K0
给ipa瘦身
所谓的ipa,其实就是苹果移动端设备中应用程序的安装包,跟安卓应用程序安装包(APK)是一样的道理。
拉维
2024/02/22
3050
给ipa瘦身
如何使用腾讯云COS+CDN搭建一个属于自己的图床
选择腾讯云托管证书→选择对应的证书完成配置,也可通过自有证书上传。若无证书可前往SSL控制台申请免费证书。
Im小泽
2024/04/02
5970
基于腾讯云COS+CI图文音视频解决方案
从早期的门户网站,到后面的feeds流,再到如今的各种垂直行业的社区分享,一次次变更成就了近几年行业中的领跑者。从行业领先的微博,再看小红书、B站等等,绝对都是可以看到feeds和社区的影子。而其中跑不掉的原始素材便是基础的图片、音频和视频等。今天就来介绍基于腾讯云如何解决这些社区方案中原始基础素材的问题。
云存储
2020/09/30
2.2K0
基于腾讯云COS+CI图文音视频解决方案
微信小程序文件上传下载应用场景
草小灰
2016/09/28
12.9K5
微信小程序文件上传下载应用场景
Mastodon 对接腾讯云 COS 存储实战
看到文档活动中心出了 COS 征文活动,就又来参加了,这次会介绍一下自己在微博客场景下是如何使用 COS 的
远哥制造
2022/08/30
40.8K1
Mastodon 对接腾讯云 COS 存储实战
【最佳实践】巡检项:对象存储(COS)存储桶防盗链(Referer)配置
检查腾讯云对象存储 COS 的防盗链配置情况。 当COS存储桶权限为公有读时,如果防盗链出现以下两种情况,可能会导致存储桶出现安全风险。
吴硕卫
2022/05/10
3.3K1
京东快递小程序分包优化实践
随着项目规模增大,小程序分包优化是必须要面对的问题。分包不合理,不仅影响项目迭代和上线计划,还关乎用户体验,甚至因此导致 C 端用户流失。本文主要介绍京东快递小程序分包过程中踩过的坑,以及小程序分包优化的一些建议。
前端迷
2023/03/02
1.1K0
京东快递小程序分包优化实践
如何在小程序中实现人脸识别功能
在如何在小程序中实现文件上传下载文章中,我们介绍了小程序的上传基本使用教程,文末我们留下了一个引子。本文将介绍在小程序端,使用腾讯云云智AI应用服务来进行人脸识别检测分析,实现人脸识别等功能。
腾讯云AI
2019/03/01
6K0
推荐阅读
相关推荐
三步瘦身,做名副其实的「小程序」
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档