code: function run(fis, argv, env) {
      // init project configure
      loadProjectConfig(fis, argv, env);
  
      // init tfux
      init(fis, argv, env);
  
      var cli = this;
      if (fis.media().get('options.color') === false) {
          cli.colors.mode = 'none';
      }
  
      var location = env.modulePath
          ? path.dirname(env.modulePath)
          : path.join(__dirname, '../');
      fis.log.info('Currently running %s (%s)', cli.name, location);
      if (!argv._.length) {
          return cli[argv.v || argv.version ? 'version' : 'help']();
      }
  
      // register command
      var cmdName = argv._[0];
      var commander = cli.commander = require('commander');
      var cmd = null;
      try {
          cmd = fis.require('command', cmdName);
      }
      catch (ex) {
          fis.log.warn(ex.toString());
          fis.log.info('unknown command, please use `tfux --help` to show all available commands');
          return;
      }
  
  
      if (!cmd.register) {
          cmd.run(argv, cli, env);
          return;
      }
  
      // [node, realPath(bin/fis.js)]
      var argvRaw = process.argv;
      // fix args
      var p = argvRaw.indexOf('--no-color');
      ~p && argvRaw.splice(p, 1);
  
      p = argvRaw.indexOf('--media');
      ~p && argvRaw.splice(p, argvRaw[p + 1][0] === '-' ? 1 : 2);
  
      // 兼容旧插件。
      cmd.register(
          commander
              .command(cmd.name)
              .usage(cmd.usage)
              .description(cmd.desc)
      );
      commander.parse(argvRaw);
  }
docs: tfux 命令行执行入口。
  
  @param {Object} fis fis 实例
  @param {Array} argv 由 {@link https://github.com/substack/minimist minimist}
  解析得到的 argv, 已经转换成了对象。
  @param {Array} env liftoff env
  @return {*}