生成svg模版
/* 因为要在icon组件中使用到svgs文件,所以直接将文件写到icon组件目录下 框架开发时候写入到src/lib/icon 目录底下 业务开发的时候写入到node_modules/snk-mobile/src/lib/icon目录底下 所以先判断是否存在路径 然后再写入 这样就方便icon组件进行引用*/const path = require('path');const fs = require('fs');const svgDir = path.resolve(__dirname, '../../assets/svgs');function startWirteSvgFile(successCallBack) { // 生成js文件 console.log('start create svg file!'); readSvgs().then((data) => { const svgFile = `export default${JSON.stringify(Object.assign.apply(this, data))}`; const pathForFrameWork = path.resolve(__dirname, '../../assets'); const pathForBusiness = path.resolve(__dirname, '../../assets'); writeSvgConfigIntoFile(pathForBusiness, svgFile, (isScuccess) => { if (!isScuccess) { writeSvgConfigIntoFile(pathForFrameWork, svgFile, (re, err) => { if (re) { successCallBack(); } else { console.error(err); console.error('svg创建失败!'); } }); } else { successCallBack(); } }); }).catch((err) => { console.error(err); console.error('svg创建失败!'); });}function writeSvgConfigIntoFile(pathUrl, svgFile, cb) { fs.exists(pathUrl, (isExists) => { if (isExists) { fs.writeFile(`${pathUrl}/svgs.js`, svgFile, (err) => { if (err) { cb && cb(false, err); } else { console.log('svg创建成功!'); cb && cb(true); } }); } else { cb && cb(false); } });}// 读取单个文件function readfile(filename) { return new Promise((resolve, reject) => { fs.readFile(path.join(svgDir, filename), 'utf8', (err, data) => { data = data.replace(/<\?xml.*?\?>| | /g, ''); data = data.replace(/ { fs.readdir(svgDir, (err, files) => { if (err) reject(err); Promise.all(files.map(filename => readfile(filename))) .then(data => resolve(data)) .catch(() => reject(err)); }); });}startWirteSvgFile()复制代码