从去年五月份开始咱们一直在作小程序项目,通过一年的迭代功能已经完善…… 扯远了,西内
刚开始开发的时候使用wxss书写样式代码,那感受,那效率,PM差点气离职。
因而咱们开始寻找高效的解决方案(寻找个屁,百度一搜一堆),网上不少解决方案都是在编辑器配置,emmmm 这是真的高效。
因为确实不习惯改编辑器配置,咱们仍是写了一个脚本,用来编译less。(老表,直接上代码,BB这么多)。css
一种是lessc编译,一种是用less的render方法;
小程序尽可能不要引入本地less包,所以lessc/less 都是用的global环境 (恁娘的)。
github地址: node-compile-less 但愿给个鼓励,感谢node
/** * @file 小程序编译less * */ const fs = require('fs'); const path = require('path'); // const less = require('less'); const {exec} = require('child_process'); const globalLessc = '/Users/yujinjiang/.nvm/versions/node/v14.4.0/bin/lessc'; // 编译配置 const COMPILE_CONFIG = { SOURCE: 'less', TARGET: 'wxss' }; // 编译目录 const observedDirs = [ path.join(__dirname, './pages/'), path.join(__dirname, './packageA/'), path.join(__dirname, './components/'), ]; // 编译监听 observedDirs.forEach(observedDir => { // 监听选项 const watchOptions = { persistent: true, recursive: true, encoding: 'utf-8' }; fs.watch( observedDir, watchOptions, (eventType, filename) => { const ext = filename.slice(filename.lastIndexOf('.') + 1); const { SOURCE, TARGET } = COMPILE_CONFIG; if (ext === SOURCE) { const sourcePath = path.join(observedDir, filename); const targetPath = sourcePath.slice(0, sourcePath.lastIndexOf('.') + 1) + TARGET; exec(`${globalLessc} ${sourcePath} ${targetPath}`); // const encodingOption = { // encoding: 'utf-8' // }; // fs.readFile( // sourcePath, // encodingOption, // (e, data) => { // if (e) { // return; // } // // less.render(data) // .then(code => { // // fs.writeFile( // targetPath, // code.css, // encodingOption, // (e) => { // if (e) { // console.log(e); // } // } // ); // }) // .catch(() => {}); // } // ); } } ); });