node fs模塊練習 模擬小程序開發工具,快速生成page中文件夾,含wxml、wxss、json、js文件

知識點: node 命令行傳參、fs 模塊方法~~~~node

第一步 小程序根目錄,新建 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 爲文件名json

相關文章
相關標籤/搜索