从去年五月份开始我们一直在做小程序项目,经过一年的迭代功能已经完善…… 扯远了,西内
刚开始开发的时候使用wxss书写样式代码,那感觉,那效率,PM差点气离职。
于是我们开始寻找高效的解决方案(寻找个屁,百度一搜一堆),网上很多解决方案都是在编辑器配置,emmmm 这是真的高效。
由于确实不习惯改编辑器配置,我们还是写了一个脚本,用来编译less。(老表,直接上代码,BB这么多)。
一种是lessc编译,一种是用less的render方法;
小程序尽量不要引入本地less包,因此lessc/less 都是用的global环境 (恁娘的)。
github地址: node-compile-less 希望给个鼓励,感谢
/**
* @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(() => {});
// }
// );
}
}
);
});
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。