命令行修改微信小程序开发AppId

Scroll Down

痛点

在多个小程序多个环境下开发,频繁切换,有时候还记不住Appid,重新找,实在烦人。

解决方案

微信小程序appid 修改作用于project.config.json,意味着通过脚本修改project.config.json 下的appid即可。

思路

  1. 通过 node 的 process.argv 获取命令行参数,根据参数获取不同的appid,进行修改
  2. 通过 node 的readFileSync、writeFileSync进行对微信小程序配置文件project.config.json读写操作即可。

实现代码 index.js

#!/usr/bin/env node
console.log('修改小程序开发环境')
const fs = require("fs");
const setting = {
  a: {
    dev: {
      mode: 'dev',
      appid: '******',
    },
    pro: {
      mode: 'pro',
      appid: '******',
    },
  },
  b: {
    dev: {
      mode: 'dev',
      appid: '******',
    },
    pro: {
      mode: 'pro',
      appid: '******',
    }
  }
}
let pjName = 'project.config.json'
let projectPath = ''

let settingData = {}
try {
  let setArgv = process.argv.slice(2)
  if (setArgv.length !== 2) {
    console.log('缺少参数',setting)
    return
  }
  if (!setting[setArgv[0]]) {
    console.log('参数错误',setting)
    return
  }
  if (!setting[setArgv[0]][setArgv[1]]) {
    console.log('参数错误',setting)
    return
  }
  settingData = setting[setArgv[0]][setArgv[1]]
  console.log('process.argv', setArgv)
  projectPath = process.cwd() + '\\' + pjName
  let isFile = fs.statSync(projectPath).isFile()
  if (isFile) {
    console.log(projectPath)
    try {
      let data = fs.readFileSync(projectPath, 'utf8');
      let jsonData = JSON.parse(data)
      jsonData.setting.appid = settingData.appid
jsonData.appid = settingData.appid
      fs.writeFileSync(projectPath, JSON.stringify(jsonData, '', 2)  );
    } catch (e) {
      console.error('json error', e);
    }
  }
} catch(e){}
console.log('修改小程序开发环境 成功:' + settingData.mode)

构建命令行

  1. 在 index.js 文件夹下,执行npm init ,生成package.json文件
  2. 在package.json中添加:
 "bin": {
    "set-wx": "./index.js"
  },

注意: 在index.js 顶部,添加: #!/usr/bin/env node

  1. 在目录下执行npm i ./ -g ,安装全局
  2. 安装成功,就可以使用 set-wx a dev ,修改配置了。乐滋滋
    代码