知识点: node 命令行传参、fs 模块方法~~~~node
let dirname = process.argv.splice(2)[0]; const fs = require('fs') const path = require('path') class GennerateWXPage { /** * * @param {string} dirname 生成page名 * @param {string} sourcePath 生成文件绝对路径,默认当前文件所在路径 */ genDir(dirname, sourcePath = path.resolve('./')) { // 检测page文件夹是否存在 if (!fs.existsSync(`${sourcePath}/pages`)) { fs.mkdirSync(`${sourcePath}/pages`) } if (!fs.existsSync(`${sourcePath}/pages/${dirname}`)) { fs.mkdirSync(`${sourcePath}/pages/${dirname}`) } this.genWXML(dirname, sourcePath) this.genJSON(dirname, sourcePath) this.genJS(dirname, sourcePath) this.genWXSS(dirname, sourcePath) // 判断文件是存在 } genWXML(dirname, sourcePath) { if (!fs.existsSync(`${sourcePath}/pages/${dirname}/${dirname}.wxml`)) { let wxml_content = ` <!--pages/${dirname}.wxml--> <text>pages/${dirname}.wxml</text> ` fs.writeFileSync(`${sourcePath}/pages/${dirname}/${dirname}.wxml`, wxml_content) } } genJSON(dirname, sourcePath) { if (!fs.existsSync(`${sourcePath}/pages/${dirname}/${dirname}.json`)) { let json_content = ` { "usingComponents": {} } ` fs.writeFileSync(`${sourcePath}/pages/${dirname}/${dirname}.json`, json_content) } } genJS(dirname, sourcePath) { if (!fs.existsSync(`${sourcePath}/pages/${dirname}/${dirname}.js`)) { let js_content = ` // pages/${dirname}.js Page({ /** * 页面的初始数据 */ data: { }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady: function () { }, /** * 生命周期函数--监听页面显示 */ onShow: function () { }, /** * 生命周期函数--监听页面隐藏 */ onHide: function () { }, /** * 生命周期函数--监听页面卸载 */ onUnload: function () { }, /** * 页面相关事件处理函数--监听用户下拉动做 */ onPullDownRefresh: function () { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom: function () { }, /** * 用户点击右上角分享 */ onShareAppMessage: function () { } }) ` fs.writeFileSync(`${sourcePath}/pages/${dirname}/${dirname}.js`, js_content) } } genWXSS(dirname, sourcePath) { if (!fs.existsSync(`${sourcePath}/pages/${dirname}/${dirname}.wxss`)) { let wxss_content = ` /* pages/${dirname}.wxss */ ` fs.writeFileSync(`${sourcePath}/pages/${dirname}/${dirname}.wxss`, wxss_content) } } } if(dirname) { let gen = new GennerateWXPage() gen.genDir(dirname) } else { // .... }
good-list 为文件名json