docs: function changeVersion() {
    log.info('Updating version number...');
  
    const packageJsonPath = path.join(__dirname, '../../components/package.json');
    const appComponentPath = path.join(__dirname, '../site/_site/doc/app/app.component.ts');
    const codeBoxPath = path.join(__dirname, '../site/_site/doc/app/share/nz-codebox/stack-blitz.ts');
    const zorroVersionPath = path.join(__dirname, '../../components/version.ts');
  
    const packageJson = fs.readJsonSync(packageJsonPath);
    const currentVersion = packageJson.version;
    let versionNumberValid = false;
    let version;
  
    function parseVersion(version) {
      const matches = version.match(versionNameRegex);
  
      if (!matches) {
        return null;
      }
  
      return {
        major : Number(matches[1]),
        minor : Number(matches[2]),
        patch : Number(matches[3]),
        preTag: matches[4],
        pre   : Number(matches[5]),
      }
    }
  
    function checkVersionNumber(cur, next) {
      // Must be numbers and dots.
      if (!versionNameRegex.test(next)) {
        return false;
      }
  
      const curVersion = parseVersion(cur);
      const nextVersion = parseVersion(next);
  
      for (const k of ['major', 'minor', 'patch']) {
        if (curVersion[k] < nextVersion[k]) {
          return true;
        }
  
        if (curVersion[k] > nextVersion[k]) {
          return false;
        }
      }
  
      if (curVersion.preTag !== nextVersion.preTag) {
        return true;
      }
  
      return curVersion.pre < nextVersion.pre
    }
  
    while (!versionNumberValid) {
      version = read.question(chalk.bgYellow.black('Please input the new version:') + '  ');
      if (checkVersionNumber(currentVersion, version)) {
        versionNumberValid = true;
        nextVersion = version;
      } else {
        log.error(`Your input ${version} is not after the current version ${currentVersion} or is unvalid. Please check it.`);
      }
    }
  
    fs.writeJsonSync(packageJsonPath, {...packageJson, version: version}, {spaces: 2});
    fs.writeFileSync(appComponentPath,
      fs.readFileSync(appComponentPath, 'utf-8')
        .replace(/currentVersion = '.+';/g, `currentVersion = '${version}';`)
    );
    fs.writeFileSync(codeBoxPath,
      fs.readFileSync(codeBoxPath, 'utf-8').replace(/'ng-zorro-antd'\s*: '.+'/g, `'ng-zorro-antd': '^${version}'`)
    );
    fs.writeFileSync(zorroVersionPath,
      fs.readFileSync(zorroVersionPath, 'utf-8')
        .replace(/Version\('.+'\);/g, `Version('${version}');`)
    );
    log.success('Version updated!');
  }