评论

分享一个自用的预编译框架下构建版本的 js 脚本

脚本可以帮助自动提交 git 和小程序的版本,不需要再提交两次,方便统一版本号

脚本适用于预编译框架的小程序,如:WePY / mpvue / Tina

脚本需要开发者工具开启命令行调用,环境依赖于 inquirer ,因为我使用的是 yarn 使用 npm 的可以自行替换。


编辑 package.json 文件

{
  "scripts": {
    // ...
    "preupload": "run-s build", // 在运行 upload 前先编译好文件
    "upload": "node ./upload.js"
  },
  "devDependencies": {
    "inquirer": "^6.2.2"
    // ...
  }
  // ...
}

在项目根目录新建 upload.js

// upload.js

#!/usr/bin/env node

const inquirer = require('inquirer')
const util = require('util')
const exec = util.promisify(require('child_process').exec)
const cli = '/Applications/wechatwebdevtools.app/Contents/MacOS/cli' // 根据自己的系统自行替换

inquirer
  .prompt([
    {
      type: 'list',
      name: 'version',
      message: '版本级别',
      choices: [
        {
          name: '补丁版',
          value: 'patch',
        },
        {
          name: '次版本',
          value: 'minor',
        },
        {
          name: '主版本',
          value: 'major',
        },
      ],
    },
    {
      type: 'input',
      name: 'message',
      message: '更新内容',
      default: `${new Date().toLocaleString()} 更新`,
    },
  ])
  .then(answers => {
    ;[
      `git add . && git commit -m '${answers.message}'`,
      `yarn version --${answers.version}`, // npm 换为 `npm version ${answers.version}` 即可
      'git push --tags && git push',
      `${cli} -u $npm_package_version@$INIT_CWD --upload-desc '${
        answers.message
      }'`,
    ].forEach(async cmd => {
      const { stdout } = await exec(cmd)
      console.log(stdout)
    })
  })
最后一次编辑于  2019-03-23  
点赞 1
收藏
评论
登录 后发表内容