第二篇:常用的Taro项目配置

序言

Taro的项目配置结合了小程序和webpack进行整合,可以选择React或者Vue进行开发,这里分享几个非常实用的配置,有助于提高开发效率

1. @tarojs/plugin-html插件

支持在Taro项目中使用HTML标签进行组件开发,最主要的一个优势,可以保留开发浏览器页面的习惯,使用<div>来替代<view>。不过有一点需要注意,这个插件会把<span>标签也最终渲染成<view>,原因是小程序里的<Text>标签只能内部嵌套<Text>,如果把<span>标签替换成<Text><span>的内部就只能嵌套<span><i><b>这些行内元素,影响开发体验

js 复制代码
{
  plugins: [
    '@tarojs/plugin-html'
  ],
}

2. mini.postcss.cssModules.enable

这个属性值默认是false,如果想使用css的module功能,则需要手动将值设置成true,然后css类的名字就会根据设置的generateScopedName自动生成,默认是[name]__[local]___[hash:base64:5],后面5位是基于base64生成的随机hash值

js 复制代码
{
  mini: {
    postcss: {
      cssModules: {
        enable: true, // 默认为 false,如需使用 css modules 功能,则设为 true
        config: {
          namingPattern: 'module', // 转换模式,取值为 global/module
          generateScopedName: '[name]__[local]___[hash:base64:5]'
        }
      }
    }
  }
}

3. designWidth的高级用法

designWidth用来设置设计稿的尺寸,常见的值有750、640、375等,Taro默认会对所有单位进行转换(行内样式需要使用Taro.pxTransform()才能转换)。但是如果遇到比较复杂的情况,比如项目的设计稿是375px,而引入的组件库的标准尺寸是750px该怎么处理?比如后面一篇文章会提到的第三方组件库Taroify,它的设计稿尺寸就是750px

这个时候就可以用函数的形式设置designWidth

js 复制代码
{
  designWidth: (input) => {
    // 第三方组件库的设计尺寸是750px
    if (input.file?.replace(/\\+/g, '/').indexOf('@taroify') > -1) {
      return 750;
    }
    // 项目设计稿的标准尺寸375px
    return 375;
  },
  
  // px->rpx的单位换算规则
  deviceRatio: {
    640: 2.34 / 2,
    750: 1,
    828: 1.81 / 2,
    375: 2 / 1
  },
}

4. @tarojs/plugin-http插件

小程序有一套自己的原生网络请求体系,可以通过Taro.request(option)进行使用,但是为了符合之前的开发习惯,可以通过@tarojs/plugin-http这个插件对axios实例进行封装,方便把之前在浏览器开发项目中封装好的axios配置直接拿过来用,配置请求拦截器、响应拦截器等等

js 复制代码
{
  plugins: ['@tarojs/plugin-http'],
}

不过由于真实的执行环境还是在小程序,就会受到部分限制:

  • 暂不支持上传,且插件默认会将全局 FormDataBlob对象替换成undefined(仅针对小程序环境)

另外由于这个插件比较新,对Taro的版本有要求

  • 需搭配 taro 主包 3.6.0 及其以上版本使用
  • webpack4 用户需升级插件版本为 3.6.6 及其以上

后续还会慢慢补充

上述的几个配置基本可以满足平时的开发需求,而且尽可能让大家的开发习惯保持一致,就像开发浏览器页面一样开发小程序,降低了学习成本。如果大家有很推荐的配置也欢迎在评论区分享出来~

按照之前的规划,后面会陆续分享:

  • Taro组件库推荐
  • Taro自定义组件
  • Taro引入第三方工具库的注意问题
  • Taro的跨端编译原理
  • Taro自定义插件(实战)
相关推荐
gis开发之家38 分钟前
《Vue3 从入门到大神40篇》Vue3 源码详解(十):diff 算法全解析 —— 为什么 Vue3 比 Vue2 更快?
javascript·算法·typescript·前端框架·vue3·vue3源码
海带紫菜菠萝汤2 小时前
WebCodecs API 实战:浏览器原生视频编解码的原理与性能测试
前端·javascript·音视频·视频编解码
前端炒粉3 小时前
简易实现ssr
开发语言·前端·javascript
meilindehuzi_a4 小时前
Node.js + LangChain.js + Milvus 实战:从 EPUB 入库到《天龙八部》RAG 问答系统
javascript·langchain·node.js
勇往直前plus5 小时前
Vue3(篇四)单页面应用到路由管理
javascript·typescript·前端框架·vue
不简说6 小时前
JS 代码技巧 vol.9 — 20 个设计模式在真实项目里的应用
前端·javascript·github
勇往直前plus6 小时前
Vue3(篇三) Element Plus
前端·javascript·typescript·vue
Revolution617 小时前
数组本身没有 map,为什么还能直接调用:原型链怎样查找属性
前端·javascript·面试
cdcdhj7 小时前
vue3中的watchEffect()监听,什么时候监听,什么时候清理,什么时候停止
前端·javascript·vue.js
huabuyu7 小时前
几百 MB 的文件为什么等几分钟才能打开?文件分片下载与渐进预览原理
前端·javascript