145 lines
4.0 KiB
JavaScript
145 lines
4.0 KiB
JavaScript
/**
|
|
* 小程序自动上传脚本
|
|
* 使用前请先安装: npm install miniprogram-ci --save-dev
|
|
*/
|
|
|
|
const ci = require('miniprogram-ci')
|
|
const path = require('path')
|
|
|
|
// 配置信息
|
|
const config = {
|
|
// 小程序AppID
|
|
appid: 'wxb8bbb2b10dec74aa',
|
|
|
|
// 项目路径
|
|
projectPath: path.resolve(__dirname),
|
|
|
|
// 私钥路径(需要从微信公众平台下载)
|
|
// 下载地址:微信公众平台 -> 开发管理 -> 开发设置 -> 小程序代码上传密钥
|
|
privateKeyPath: path.resolve(__dirname, './private.key'),
|
|
|
|
// 版本号(请根据实际情况修改)
|
|
version: '1.0.1',
|
|
|
|
// 版本描述
|
|
desc: 'Soul创业派对 - 功能更新(匹配功能配置化)',
|
|
|
|
// 编译设置
|
|
setting: {
|
|
es6: true,
|
|
es7: true,
|
|
minifyJS: true,
|
|
minifyWXML: true,
|
|
minifyWXSS: true,
|
|
minify: true,
|
|
codeProtect: false,
|
|
autoPrefixWXSS: true
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 上传小程序代码
|
|
*/
|
|
async function upload() {
|
|
console.log('🚀 开始上传小程序...')
|
|
console.log('📦 项目路径:', config.projectPath)
|
|
console.log('🆔 AppID:', config.appid)
|
|
console.log('📌 版本号:', config.version)
|
|
|
|
try {
|
|
// 创建项目实例
|
|
const project = new ci.Project({
|
|
appid: config.appid,
|
|
type: 'miniProgram',
|
|
projectPath: config.projectPath,
|
|
privateKeyPath: config.privateKeyPath,
|
|
ignores: ['node_modules/**/*']
|
|
})
|
|
|
|
console.log('✅ 项目实例创建成功')
|
|
|
|
// 上传代码
|
|
console.log('⏳ 正在上传代码...')
|
|
const uploadResult = await ci.upload({
|
|
project,
|
|
version: config.version,
|
|
desc: config.desc,
|
|
setting: config.setting,
|
|
onProgressUpdate: (info) => {
|
|
console.log('📊 上传进度:', info)
|
|
}
|
|
})
|
|
|
|
console.log('🎉 上传成功!')
|
|
console.log('📝 上传结果:', uploadResult)
|
|
console.log('')
|
|
console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━')
|
|
console.log('✅ 代码已上传到微信公众平台')
|
|
console.log('📱 请前往微信公众平台提交审核:')
|
|
console.log(' https://mp.weixin.qq.com/')
|
|
console.log(' 登录 → 版本管理 → 开发版本 → 提交审核')
|
|
console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━')
|
|
|
|
} catch (error) {
|
|
console.error('❌ 上传失败:', error.message)
|
|
|
|
if (error.message.includes('private.key')) {
|
|
console.log('')
|
|
console.log('⚠️ 缺少密钥文件 private.key')
|
|
console.log('📥 请按以下步骤获取:')
|
|
console.log(' 1. 访问 https://mp.weixin.qq.com/')
|
|
console.log(' 2. 登录小程序后台')
|
|
console.log(' 3. 开发管理 → 开发设置 → 小程序代码上传密钥')
|
|
console.log(' 4. 点击"生成",下载密钥文件')
|
|
console.log(' 5. 将 private.*.key 重命名为 private.key')
|
|
console.log(' 6. 放到 miniprogram 目录下')
|
|
}
|
|
|
|
process.exit(1)
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 预览小程序
|
|
*/
|
|
async function preview() {
|
|
console.log('👀 生成预览二维码...')
|
|
|
|
try {
|
|
const project = new ci.Project({
|
|
appid: config.appid,
|
|
type: 'miniProgram',
|
|
projectPath: config.projectPath,
|
|
privateKeyPath: config.privateKeyPath,
|
|
ignores: ['node_modules/**/*']
|
|
})
|
|
|
|
const previewResult = await ci.preview({
|
|
project,
|
|
desc: config.desc,
|
|
setting: config.setting,
|
|
qrcodeFormat: 'terminal',
|
|
qrcodeOutputDest: path.resolve(__dirname, './preview.jpg'),
|
|
onProgressUpdate: (info) => {
|
|
console.log('📊 生成进度:', info)
|
|
}
|
|
})
|
|
|
|
console.log('✅ 二维码已生成:', './miniprogram/preview.jpg')
|
|
console.log('📱 使用微信扫码即可预览')
|
|
|
|
} catch (error) {
|
|
console.error('❌ 生成预览失败:', error.message)
|
|
process.exit(1)
|
|
}
|
|
}
|
|
|
|
// 命令行参数
|
|
const command = process.argv[2]
|
|
|
|
if (command === 'preview') {
|
|
preview()
|
|
} else {
|
|
upload()
|
|
}
|