当前位置: 首页 > wzjs >正文

男女做的的真实视频网站线上推广方案

男女做的的真实视频网站,线上推广方案,在线网站制作系统,全国做网站的公司weapp-vite - 微信小程序工具链的另一种选择 前言 weapp-vite 是由 笔者 icebreaker 开发的一个基于 vite 的现代化微信小程序开发工具链。我给它设定的目标初心是: 为小程序开发者带来笑容。 自从在 2024 年的 8 月正式发布之后,到现在也过了将近 9 个月的时间。…

bg

weapp-vite - 微信小程序工具链的另一种选择

前言

weapp-vite 是由 笔者 icebreaker 开发的一个基于 vite 的现代化微信小程序开发工具链。我给它设定的目标初心是: 为小程序开发者带来笑容

自从在 2024 年的 8 月正式发布之后,到现在也过了将近 9 个月的时间。weapp-vite 在用户不断的反馈,以及我对代码方面不断的重构和优化下,也从 1.x 版本逐渐迭代到了 4.0 版本。

最近随着我对打包工具,以及编译的理解不断的加深,4.0 版本中,我也完全重构了 weapp-vite 的编译核心。这个版本是我相对来说,比较 满意 的一个版本。

所以我也心血来潮,写了这篇文章。同时这也是我之前,虽然发布了 2.x3.x 版本,但是却没有发表任何文章的一个主要原因。

之前版本遇到的一些困难

3.x 之前的版本,存在一些非常大的问题:

热更新与耦合问题

每次构建,weapp-vite 都会去扫描整个小程序目录,然后分析哪些是打包入口,哪些是 wxml 的依赖项。这套机制是纯 fs 实现的,并没有用到 vite(rollup) 的 chunk/asset 加载的机制。

这导致在插件的 options 阶段做的事情过多,热更新效率非常差,多个 Service 还有 Vite 插件存在严重耦合。

虽然普通的使用 weapp-vite 的开发者不会遇到这个情况,但是这却严重阻碍了 weapp-vite 的进一步发展。这让我如鲠在喉,夜不能寐。

于是,我详细阅读并调试了 uni-appTaro 的源代码,并最终走出了一条最适合 weapp-vite 路。

值得一提的是,uni-app 编译的中间产物比较有趣:

import './manifest-json-js'
if (!Math) {import('uniPage://cGFnZXMvaW5kZXgvaW5kZXgudnVl')import('uniPage://cGFnZXMvaXNzdWUvdGFpbHdpbmQtY2hpbGRyZW4udnVl')import('uniPage://cGFnZXMvaXNzdWUvY2FzZS1keW5hbWljLWNsYXNzLnZ1ZQ')
}

这种加载机制,有点类似于那种 rollup 虚拟模块的实现。而且这么写可以走 resolveDynamicImportrollup build hook,然后其余的小程序页面就走:

// uniPage
import MiniProgramPage from 'xxxx'
wx.createPage(MiniProgramPage)

虽然 uni-app / Taro 都改了运行时了。但我对我的 weapp-vite 的编译的目标是默认不会注入任何运行时的东西,这样才能保证打出来的包足够的小, 后续用户想要注入什么都通过 vite 插件的方式进行注入。

Taro 为了做运行时兼容,注入的运行时代码实在是太大了,需要在一开始的时候就做好分包的规划。uni-app 也有注入但是体积还能接受,没有 Taro 这么夸张。

自定义加载模块方式

然后另外在更改 weapp-vite 内核的时候,我曾经一度想要放弃使用 vite 改用 rspack 完全重写,因为我有高度自定义加载模块方式的需求。(假如真的这样做,那项目就改名叫 weapp-rspack)

因为默认情况下 rollup 就只支持 import ,import() 等等这种方式去做模块的分析和引入。cjs 那种都是需要依赖 @rollup/plugin-commonjs 这种去做转化 esm, 然后分析依赖。

但是小程序的模块加载方式是非标的,什么 require.async(id), require(id,callback) 这种都不是默认的标准,这时候就需要自定义加载模块方式。

当然扯到这就太技术了,读者没有遇到过这样的场景的话,也是很难理解的了的。毕竟技术都是,越往一个方向深入,同行的人就越少,想找个人做技术探讨和交流都困难。

主要特点

接下来我来总结一下 weapp-vite 的主要特点:

  1. 轻量级原生开发

    • 保持原生小程序的开发方式,无需学习新框架
    • 直接使用微信官方文档的写法
    • 对原生小程序开发提供更好的支持,包括 Skyline 等新特性
  2. 现代化开发体验

    • 开箱即用支持 TypeScriptSCSSLess
    • 基于 Vite 构建,享受极速的开发体验
    • 支持 Vite 生态的插件系统
  3. 增强功能

    • 自动构建 npm:支持两种 npm 构建策略
    • 自动引入组件:无需手动在 json 中注册
    • 完整的别名支持:可在任意 js/tsjson 文件中使用
    • 独立分包适配:自动处理分包场景

适用场景

weapp-vite 特别适合以下场景:

  1. 专注微信小程序开发

    • 如果你只需要开发微信小程序,不需要跨端
    • 想要使用微信小程序最新特性(如 Skyline
  2. 原生小程序迁移

    • 现有原生小程序项目想要现代化改造
    • 使用 gulpmina 方案的项目想要升级
  3. 轻量级需求

    • 不需要完整的跨端框架
    • 希望保持原生开发方式,但需要现代化工具支持

不适用的场景

同样,目前 weapp-vite 并不适合以下场景:

  • 需要完整跨端能力的框架
  • 需要使用 Vue/React 等前端框架的写法,来取代小程序原生写法

毕竟深入小程序原生开发的人,其实要比懂 Vue/React 的人数少很多。

而且小程序的编写范式和体验,实际上也要比 Vue/React 差,我自从做小程序方向的开源项目以来,听到了无数次群友这方面吐槽,早已听出老茧了。

对于这种场景,推荐使用 uni-appTaro 这种成熟的跨端框架。

快速开始

  1. 创建项目
# 使用 pnpm
pnpm create weapp-vite@latest# 或使用 npm
npm create weapp-vite@latest
  1. 安装依赖
pnpm i  # 或 npm install
  1. 开发命令
pnpm dev  # 启动开发服务器
pnpm dev -o  # 启动开发并打开微信开发者工具

当然对应的使用文档都在 官方文档 | 备用官方文档 中。

结尾

最后一定要感谢我的用户们,他们为这个项目提供了许多非常有价值的反馈。

助力这个项目从一个个人实验性质的想法,升级到了一个正式的项目。

当然,也非常欢迎大家提出任何的改进意见,除了在群里交流之外,我其实更加希望大家使用提 Issue 或 Pull Request 的方式。

另外,也希望看到这里的同学们,给 weapp-vite 点个 Star 吧! 大家的鼓励就是我继续前进的动力,Thanks!

http://www.dtcms.com/wzjs/260163.html

相关文章:

  • 网站开发和桌面开发哪个难关键词优化的发展趋势
  • 做网站需要懂哪些语言百度搜索官网
  • 网站设计师培训中心网络销售平台排名前十
  • 杭州响应式网站案例seo快速排名软件首页
  • 做导航网站用多大的空间产品推广图片
  • wordpress媒体库路径上海哪家seo公司好
  • 最专业的网站建设哪家好谷歌seo排名优化
  • 做网站的底图尺寸多大什么是论坛推广
  • 中国都在那个网站上做外贸百度一下百度一下
  • 网站安全制度体系的建设情况网页设计友情链接怎么做
  • 做网站卖仿品qq群引流推广网站
  • 旅游网站模板下载seo优化是指
  • 艺术品电商网站开发上海网络seo公司
  • 企业网站适合响应式嘛百度云网页版登录入口
  • 网站历史频道怎么做关键词排名优化网站
  • 单位做网站备案用身份证有啥用个人网站设计成品
  • 做外贸网站可以收付款吗seo优化排名价格
  • 网站开发公司哪家好关键词排名关键词优化
  • 帮网站做推广赚钱深圳市推广网站的公司
  • python网站建设代码爱战网关键词工具
  • 互联网旅游网站建设策划书百度站长工具官网
  • 做像美团淘宝平台网站多少钱中小企业网络推广
  • 做网站开发平台长沙百度搜索排名
  • 为何打不开中国建设银行网站qq空间刷赞网站推广
  • 优惠券怎么做自己的网站软文推广文章案例
  • wordpress 2.8seo网站关键词排名软件
  • vs做的网站排版错位免费推广网址
  • 网站收藏功能网页设计与制作项目教程
  • 佛山自助建站系统东莞搜索引擎推广
  • layui 网站建设模板搜索引擎优化策略包括