HbuilderX格式化scss、less文件

HbuilderX格式化scss、less文件

HbuilderX自带了jsbeautify插件以进行代码格式化。然而当我们尝试新建外部CSS文件以分割过长组件代码时会发现,以scss或less为后缀的样式表文件无法正确地被格式化。解决该问题的方法有两种:

  • 一、在DCloud插件市场下载Prettier插件

  • 二、手动修改HbuilderX相关配置,使用自带的jsbeautify进行格式化

    由于HbuilderX可能会存在更新覆盖相关配置的可能性,所以这里编写node脚本进行批量修改。版本更新后若失效,重新执行即可。以Mac开发环境为例,Windows用户可自行修改路径设置。

    使用方式:
    在HbuilderX的工具-设置-插件配置中:
    勾选启用JavaScript校验;
    点击一次“打开文件jsbeautifyrc.js进行配置”,然后关闭HbuilderX,执行脚本即可:

    node ~/enableCssFormater.js
    

    enableCssFormater.js代码:

    //Mac用户请使用这两个变量,jsbeautifyrc注意将用户名替换为本机用户名
    const formatterPackage = "/Applications/HBuilderX.app/Contents/HBuilderX/plugins/format/package.json";
    const jsbeautifyrc = "/Users/用户名/Library/Application\ Support/HBuilder\ X/extensions/format/jsbeautifyrc.js";
    //Windows用户请使用这两个变量,也请注意修改相关路径
    const formatterPackage = "HbuilderX安装路径\\plugins\\format\\package.json";
    const jsbeautifyrc = "C:\\Users\\用户名\\AppData\\Roaming\\HBUILD~1\\extensions\\format\\jsbeautifyrc.js";
    
    const fs = require('fs');
    try {
      console.log("Start writing HbuilderX plugins...")
      const package = fs.readFileSync(formatterPackage, "utf-8");
      const packageConfig = JSON.parse(package);
      let fileTypes = packageConfig.contributes.formator.filetypes;
      ["less", "scss"].forEach(type => {
        if (!fileTypes.includes(type)) {
          fileTypes.push(type)
        }
      })
      fs.writeFileSync(formatterPackage, JSON.stringify(packageConfig), "utf-8");
      console.log("Write HbuilderX plugins succeed.")
    } catch (err) {
      console.log(`Error writing HbuilderX Plugins: ${err}`);
    }
    try {
      console.log("Start writing JSBeautify...")
      const rc = require(jsbeautifyrc)
      let fileTypes = Object.keys(rc.parsers);
      [".less", ".scss"].forEach(type => {
        if (!fileTypes.includes(type)) {
          rc.parsers[type] = "css"
        }
      })
      fs.writeFileSync(jsbeautifyrc, "module.exports = " + JSON.stringify(rc), "utf-8");
      console.log("Write JSBeautify succeed.")
    } catch (err) {
      console.log(`Error writing JSBeautify: ${err}`);
    }
    
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值