关于node.js:node-fs模块练习-模拟小程序开发工具快速生成page中文件夹含wxmlwxssjsonjs文件

53次阅读

共计 2023 个字符,预计需要花费 6 分钟才能阅读完成。

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

正文完
 0