使Prettier一键格式化WXSS(结局篇)

简介: 使Prettier一键格式化WXSS(结局篇)

前言


没想到真有最终篇......捂脸.jpg


使Prettier一键格式化WXSS(上集)

使Prettier一键格式化WXSS(下集)

使Prettier一键格式化WXSS(结局篇)

Git Commit 规范(扩展篇)


前两篇文章,终究还是留下了一些不太完美的地方。加之,今天看到了 Prettier Configuration Overrides 、Setting the parser option 配置项。


于是乎,我发现:

  1. 使用 Gulp.js 处理 wxss 文件反而是多此一举了;
  2. 同时很好地解决了下集关于使用 lint-staged 仅处理暂存文件的问题。

其实使用 Gulp.js 来处理的方式并非完全不可取,起码给我提供了一个思路,可供参考。

在更新代码之前,将其实现方式,打了个 Tag,源码在  wechat_applet_demo-1.0.0

Anyway,这个踩坑过程,我很享受。


正文


开始修复遗憾


首先,Prettier 是支持对某些文件扩展名,文件夹和特定文件进行不同的配置  这里

Overrides let you have different configuration for certain file extensions, folders and specific files.


  1. 对 Prettier 配置做调整:

// .prettierrc.js
{
  overrides: [
    {
      files: ['*.wxss', '*.acss'],
      options: {
        parser: 'css'
      }
    },
    {
      files: ['*.wxml', '*.axml'],
      options: {
        parser: 'html'
      }
    },
    {
      files: ['*.wxs', '*.sjs'],
      options: {
        parser: 'babel'
      }
    }
  ]
}


  1. 调整 NPM 脚本命令

因为无需使用 Gulp.js 了,移除 gulpfile.js 以及相关依赖包,然后对 npm scripts 调整下:

// package.json
{
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "eslint": "eslint . --ext .js,.wxs,.sjs",
    "eslint:fix": "eslint --fix . --ext .js,.wxs,.sjs",
    "prettier:fix": "prettier --config .prettierrc.js --write './**/*.{js,sjs,wxs,css,wxss,acss,wxml,axml,less,scss,json}'",
    "format:all": "npm-run-all -s prettier:fix eslint:fix"
  },
}


  1. 调整 husky 及 lint-staged 配置

由于无需再使用到函数的形式,我们将原先的 .lint-stagedrc.js 配置文件移除,然后放到 package.json 中。

// package.json
{
  "husky": {
    "hooks": {
      "pre-commit": "lint-staged"
    }
  },
  "lint-staged": {
    "*.{js,wxs,sjs}": [
      "prettier --config .prettierrc.js --write",
      "eslint --fix --ext .js"
    ],
    "*.{json,wxml,axml,css,wxss,acss,wxml,axml,less,scss}": "prettier --config .prettierrc.js --write"
  }
}


就这样,没了。


至此


此前留下的遗憾补全了,我的强迫症也治愈了,哈哈。

本系列文章的示例 Demo 在这里  GitHub: wechat_applet_demo,欢迎 Star 。


目录
相关文章
|
小程序 JavaScript 开发者
微信小程序构建npm
微信小程序构建npm
712 4
|
JSON 数据格式
使用 sendBeacon 发送数据
【10月更文挑战第6天】
437 2
|
JavaScript
Vue3数字输入框(InputNumber)
这是一个可定制的数字输入框组件,支持设置宽度、最小值、最大值、步长、精度等属性,并可添加前缀图标及自定义显示格式。组件兼容键盘快捷键操作,具备禁用功能。示例代码展示了如何使用该组件实现不同场景下的数值输入与格式化展示。组件还利用 `add` 函数解决了 JS 精度问题,并通过 `useSlotsExist` 监听插槽。
743 7
Vue3数字输入框(InputNumber)
|
JavaScript 容器
Vue3折叠面板(Collapse)
该组件提供了一个高度可定制的折叠面板,支持多种属性设置,包括折叠面板数据、激活状态、禁用选项、边框风格、复制功能等,并可通过插槽进行进一步自定义。其丰富的样式控制选项使得面板能够适应各种场景需求。在线预览展示了不同配置下的效果。组件基于 Vue 3 开发,利用 `requestAnimationFrame` 模拟实现动画效果,并集成了按钮等其他自定义组件。
595 1
Vue3折叠面板(Collapse)
|
JavaScript
Vue启动时报错的解决方案,以及解决相同路径跳转报错的问题
Vue启动时报错的解决方案,以及解决相同路径跳转报错的问题
854 0
|
JavaScript
vue组件封装 | 数字输入框(限制只能输入数字的input,可以指定小数点位数,最大值、最小值)
vue组件封装 | 数字输入框(限制只能输入数字的input,可以指定小数点位数,最大值、最小值)
504 7
|
Java 测试技术 API
使用System.currentTimeMillis获取当前时间
使用System.currentTimeMillis获取当前时间
|
开发框架 中间件 .NET
分享 ASP.NET Core Web Api 中间件获取 Request Body 两个方法
分享 ASP.NET Core Web Api 中间件获取 Request Body 两个方法
565 0
|
JavaScript
vue3以指令的形式使用防抖事件
vue3以指令的形式使用防抖事件
413 2