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

码农天地 -
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-->
<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 为文件名

特别申明:本文内容来源网络,版权归原作者所有,如有侵权请立即与我们联系(cy198701067573@163.com),我们将及时处理。

Tags 标签

加个好友,技术交流

1628738909466805.jpg