第二篇:常用的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自定义插件(实战)
相关推荐
阿伟来咯~20 分钟前
记录学习react的一些内容
javascript·学习·react.js
吕彬-前端25 分钟前
使用vite+react+ts+Ant Design开发后台管理项目(五)
前端·javascript·react.js
学前端的小朱28 分钟前
Redux的简介及其在React中的应用
前端·javascript·react.js·redux·store
guai_guai_guai37 分钟前
uniapp
前端·javascript·vue.js·uni-app
也无晴也无风雨38 分钟前
在JS中, 0 == [0] 吗
开发语言·javascript
王哲晓2 小时前
第三十章 章节练习商品列表组件封装
前端·javascript·vue.js
理想不理想v2 小时前
‌Vue 3相比Vue 2的主要改进‌?
前端·javascript·vue.js·面试
酷酷的阿云2 小时前
不用ECharts!从0到1徒手撸一个Vue3柱状图
前端·javascript·vue.js
aPurpleBerry3 小时前
JS常用数组方法 reduce filter find forEach
javascript
ZL不懂前端3 小时前
Content Security Policy (CSP)
前端·javascript·面试