module.exports = async function checkUpdate () {
  const {
    isInHBuilderX
  } = require('@dcloudio/uni-cli-shared')

  if (isInHBuilderX) { // 仅 cli 提供检测更新
    return
  }

  const pkg = require('../package.json')
  const checkForUpdate = require('update-check')
  let update = null

  try {
    const options = {}
    if (pkg.version.indexOf('alpha') !== -1) {
      options.distTag = 'alpha'
    }
    update = await checkForUpdate(pkg, options)
  } catch (err) {
    // console.error(`检查更新失败: ${err}`)
  }

  if (update) {
    if (pkg.version.split('.')[0] !== update.latest.split('.')[0]) {
      console.log(`发现 uni-app cli 新版本 ${update.latest}`)
      console.log(`1.修改 package.json 中 @dcloudio 相关包版本为 ^${update.latest}`)
      console.log('2.删除 package-lock.json 或 yarn.lock')
      console.log('3.执行 npm install 或 yarn')
    } else {
      console.log(`发现 uni-app cli 新版本 ${update.latest}. 请执行 npm update 升级`)
    }
  }
}
