知識點: 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