diff --git a/packages/create-poros/package.json b/packages/create-poros/package.json index 71ac17f..8718688 100644 --- a/packages/create-poros/package.json +++ b/packages/create-poros/package.json @@ -1,6 +1,6 @@ { "name": "create-poros", - "version": "1.1.5", + "version": "1.1.6", "description": "create-poros", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/packages/create-poros/src/index.ts b/packages/create-poros/src/index.ts index 678a995..74e98a4 100644 --- a/packages/create-poros/src/index.ts +++ b/packages/create-poros/src/index.ts @@ -27,6 +27,7 @@ interface ITemplateParams extends ITemplatePluginParams { name: string; version: string; npmClient: ENpmClient; + isYarn: boolean; registry: string; author: string; email: string; @@ -59,6 +60,7 @@ const DEFAULT_DATA = { author: 'poros', version: pkg.version, npmClient: ENpmClient.pnpm, + isYarn: false, registry: ERegistry.npm, withHusky: false, extraNpmrc: '', @@ -212,6 +214,7 @@ export default async ({ cwd, args, defaultData = DEFAULT_DATA }: IGeneratorOpts) : ({ version: version.includes('-canary.') ? version : `^${version}`, npmClient, + isYarn: npmClient === ENpmClient.yarn, registry, author, email, diff --git a/packages/create-poros/templates/app/package.json.tpl b/packages/create-poros/templates/app/package.json.tpl index a50b753..7c4e632 100644 --- a/packages/create-poros/templates/app/package.json.tpl +++ b/packages/create-poros/templates/app/package.json.tpl @@ -9,7 +9,7 @@ "build:win": "poros build --win --x64 --ia32", "dev": "poros dev", "format": "prettier --cache --write .", - "postinstall": "poros setup",{{#withHusky}} + "postinstall": "{{#isYarn}}poros patch & {{/isYarn}}poros setup",{{#withHusky}} "prepare": "husky install",{{/withHusky}} "rebuild-deps": "poros rebuild-deps", "setup": "poros setup", diff --git a/packages/poros/src/cli.ts b/packages/poros/src/cli.ts index 2137539..9516e8a 100644 --- a/packages/poros/src/cli.ts +++ b/packages/poros/src/cli.ts @@ -1,4 +1,4 @@ -import { chalk, checkLocal, logger, printHelp, setNoDeprecation, setNodeTitle, yParser } from '@umijs/utils'; +import { chalk, checkLocal, execa, logger, printHelp, setNoDeprecation, setNodeTitle, yParser } from '@umijs/utils'; import { dev } from 'umi/dist/cli/dev'; import { DEV_COMMAND, MIN_NODE_VERSION } from 'umi/dist/constants'; import { Service } from 'umi/dist/service/service'; @@ -55,6 +55,8 @@ export async function run(opts: IOpts = {}) { platform: process.platform, arch: process.arch === 'arm' ? 'armv7l' : process.arch, }); + } else if (command === 'patch') { + await execa.execa('node', ['../scripts/postinstall'], { cwd: __dirname }); } else { logger.info(chalk.cyan.bold(`Poros v${version}`));