使Prettier一鍵格式化WXSS(結局篇)

沒想到真有最終篇......捂臉.jpgcss

前兩篇文章,終究仍是留下了一些不太完美的地方。加之,今天看到了 Prettier Configuration Overrides 配置項。html

因而乎,我發現:git

  1. 使用 Gulp.js 處理 wxss 文件反而是畫蛇添足了;
  2. 同時很好地解決了下集關於使用 lint-staged 僅處理暫存文件的問題。

前言

其實使用 Gulp.js 來處理的方式並不是徹底不可取,起碼給我提供了一個思路,可供參考。github

在更新代碼以前,將其實現方式,打了個 Tag,源碼在 👉 wechat_applet_demo-1.0.0npm

Anyway,這個踩坑過程,我很享受。json

開始修復遺憾

首先,Prettier 是支持對某些文件擴展名,文件夾和特定文件進行不一樣的配置 👉 這裏gulp

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 調整下:segmentfault

// 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 中。babel

// 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"
  }
}

就這樣,沒了。app

至此

此前留下的遺憾補全了,個人強迫症也治癒了,哈哈。

本系列文章的示例 Demo 在這裏 👉 GitHub: wechat_applet_demo,歡迎 Star 👋。

相關文章
相關標籤/搜索