uino-kiss-cli
Version:
uino-kiss-cli 用来初始化项目的方便工具
51 lines (45 loc) • 1.73 kB
JavaScript
const fs = require('fs');
const path = require('path');
const chalk = require('chalk');
const log = console.log;
const isWin32 = process.platform === 'win32';
const installPacks = require('./install-packs');
const register = ()=>{
const basePath = path.resolve('./');
// const package = require(basePath+'/package.json');
const filePath = `${basePath}/vue.config.js`
// 读取 vue.config.js 文件
let data = fs.readFileSync(filePath, 'utf8').split(/\r\n|\n|\r/gm);
const requireString = 'const kissFontPlugin = require(\'kiss-font-plugin\')'
if(!data.includes(requireString)){
// 添加引入包
data.unshift(requireString)
// 添加chainWebpack方法注入
const n1 = data.findIndex(e=>/chainWebpack:/.test(e))
if(n1>-1) data.splice(n1+1,0,' kissFontPlugin.utils.chainWebpack(config);')
// 添加 configureWebpack.plugins
const reg1 = /plugins: \[\]/,reg2 = /plugins:\[\]/
const n2 = data.findIndex(e=>reg1.test(e)||reg2.test(e))
if(n2>-1) data.splice(n2,1,' plugins: [new kissFontPlugin.Plugin(),]')
const reg3 = /plugins: \[$/,reg4 = /plugins:\[$/
const n3 = data.findIndex(e=>reg3.test(e)||reg4.test(e))
if(n3>-1) data.splice(n2+1,0,' new kissFontPlugin.Plugin(),')
// 写入 vue.config.js 文件
fs.writeFileSync(filePath, data.join('\r\n'))
// 写入 kiss.font.config.js 文件
const kissFontConfigPath = `${basePath}/kiss.font.config.js`
const kissFontConfig = [
'module.exports = {',
' remotePath: \'\',',
' files: []',
'}'
]
fs.writeFileSync(kissFontConfigPath, kissFontConfig.join('\r\n'))
}
}
module.exports = {
start(){
installPacks.kissIcon(register)
},
};