命令行切换小程序开发环境
- 只需要使用node+npm, 就可以实现切换小程序的开发环境
- 实现思路: 使用npm脚本(npm scripts)指定node脚本
main.js. 并根据参数, 将指定的configs/xxx.js配置文件内容读取并写入到当前使用的配置文件ext.js中
目录介绍
├── configs // 不同环境的配置文件都在这个目录
│ │── ext.test120001.js // 测试环境1
│ │── ext.test120002.js // 测试环境2
│ │── ext.dev120001.js // 开发环境1
│ │── ext.dev120002.js // 开发环境2
│ │── ext.prod120001.js // 生产环境1
│ └── ext.prod120002.js // 生产环境2
│
│── ext.js // 当前使用的配置文件
│── app.js // 小程序的app.js
│── main.js // node执行脚本
└── package.json // package.json配置文件
/config/ext.test120001.js 示例
// /config/ext.test120001.js 示例
export default {
"blockId": "120001",// 自定义参数
"baseURL": "https://test.yourdomain.com",// 接口地址
"defaultTitle": "y约油-测试" // 小程序首页title
}
小程序app.js文件
// app.js
import extJson from './ext.js';
App({
globalData:{
extJson // ext.js中的环境配置参数
}
})
node脚本main.js
// main.js
const process = require('process')
const fs = require('fs') //文件读取和写入
const arr = process.argv // 命令行参数[]
const NODE_ENV = arr[2] // node命令第3个参数
// 各个环境对应的小程序名称
const configs = {
'dev120001': '开发小程序1',
'dev120002': '开发小程序2',
'test120001': '测试小程序1',
'test120002': '测试小程序2',
'prod120001': '生产小程序1',
'prod120002': '生产小程序2'
}
if (NODE_ENV) {
let read = fs.readFileSync(`./configs/ext.${NODE_ENV}.js`, 'utf-8')
fs.writeFile('./ext.js', read, 'utf-8', err => {
if (err) {
console.error(`切换环境${NODE_ENV}失败`)
} else {
console.log(`切换环境${NODE_ENV}成功, 请切换小程序至==>${configs[NODE_ENV]}`)
}
})
}
package.json
{
"scripts": {
"test120001": "node ./main.js test120001",
"test120002": "node ./main.js test120002",
"dev120001": "node ./main.js dev120001",
"dev120002": "node ./main.js dev120002",
"prod120001": "node ./main.js prod120001",
"prod120002": "node ./main.js prod120002"
}
}
命令行切换环境
$ npm run dev120001 # 切换到开发环境1
$ npm run dev120002 # 切换到开发环境2
$ npm run test120001 # 切换到测试环境1
$ npm run test120002 # 切换到测试环境2
$ npm run prod120001 # 切换到生产环境1
$ npm run prod120001 # 切换到生产环境2