第二篇:常用的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自定义插件(实战)
相关推荐
Myli_ing32 分钟前
HTML的自动定义倒计时,这个配色存一下
前端·javascript·html
I_Am_Me_1 小时前
【JavaEE进阶】 JavaScript
开发语言·javascript·ecmascript
℘团子এ1 小时前
vue3中如何上传文件到腾讯云的桶(cosbrowser)
前端·javascript·腾讯云
学习前端的小z1 小时前
【前端】深入理解 JavaScript 逻辑运算符的优先级与短路求值机制
开发语言·前端·javascript
前端百草阁2 小时前
【TS简单上手,快速入门教程】————适合零基础
javascript·typescript
彭世瑜2 小时前
ts: TypeScript跳过检查/忽略类型检查
前端·javascript·typescript
Backstroke fish2 小时前
Token刷新机制
前端·javascript·vue.js·typescript·vue
zwjapple2 小时前
typescript里面正则的使用
开发语言·javascript·正则表达式
小五Five2 小时前
TypeScript项目中Axios的封装
开发语言·前端·javascript
临枫5412 小时前
Nuxt3封装网络请求 useFetch & $fetch
前端·javascript·vue.js·typescript