export default async function create()

in packages/create-ice/src/create.ts [17:95]


export default async function create(dirPath: string, templateName: string, dirname: string): Promise<void> {
  if (!templateName) {
    templateName = await selectTemplate();
  }

  await fs.ensureDir(dirPath);
  const empty = await checkEmpty(dirPath);

  if (!empty) {
    const { go } = await inquirer.prompt({
      type: 'confirm',
      name: 'go',
      message:
        'The existing file in the current directory. Are you sure to continue?',
      default: false,
    });
    if (!go) process.exit(1);
  }

  let ejsOptions: EjsOptions = {
    appConfig: null,
  };
  let extraDependencies: Record<string, any> = {};

  const isAliInternal = await checkAliInternal();
  if (isAliInternal) {
    ejsOptions = {
      ...ejsOptions,
      iceConfig: {
        importDeclarationsStr: 'import def from \'@ali/ice-plugin-def\';\n',
        options: {
          pluginItemsStr: 'def(),',
        },
        optionsStr: `plugins: [
          def(),
        ],`,
      },
      esLintConfigOptions: `{
        extends: ['@ali/eslint-config-att/typescript/react']
      }`,
    };

    extraDependencies = {
      ...extraDependencies,
      devDependencies: {
        ...extraDependencies?.devDependencies || {},
        '@ali/eslint-config-att': '^1.0.0',
        '@ali/ice-plugin-def': '^1.0.0',
      },
    };
  }
  await downloadAndGenerateProject(
    dirPath,
    templateName,
    {
      ejsOptions,
      extraDependencies,
    },
  );

  console.log();
  console.log('Initialize project successfully.');
  console.log();
  console.log('Starts the development server.');
  console.log();
  console.log(chalk.cyan(`    cd ${dirname}`));

  if (isAliInternal) {
    console.log(chalk.cyan('    tnpm install'));
    console.log(chalk.cyan('    tnpm start'));
    console.log(chalk.cyan('Detected that you are an Alibaba user, DEF plugin has been added!'));
  } else {
    console.log(chalk.cyan('    npm install'));
    console.log(chalk.cyan('    npm start'));
  }

  console.log(chalk.cyan('\n\nWe have prepared develop toolkit for you. \nSee: https://marketplace.visualstudio.com/items?itemName=iceworks-team.iceworks'));
  console.log();
}