node fs模块练习 模拟小程序开发工具,快速生成page中文件夹,含wxml、wxss、json、js文件

知识点: 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
            `
            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 为文件名

你可能感兴趣的:(node.js小程序)