知识点:node 命令行传参、fs 模块办法~~~~
第一步 小程序根目录,新建 genWxPages.js 文件
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 {// ....}
第二步 执行命令 node genWxPages.js goods-list
good-list 为文件名