diff --git a/packages/create-react-app/createReactApp.js b/packages/create-react-app/createReactApp.js index fe60b6e63da..dcb72f9095a 100755 --- a/packages/create-react-app/createReactApp.js +++ b/packages/create-react-app/createReactApp.js @@ -647,11 +647,17 @@ function getTemplateInstallPackage(template, originalDirectory) { ) { // for tar.gz or alternative paths templateToInstall = template; - } else if (template.startsWith(templateToInstall)) { - templateToInstall = template; - } else if (!template.startsWith(templateToInstall)) { - // Add prefix `cra-template` to non-prefixed templates. - templateToInstall += `-${template}`; + } else { + // Add prefix 'cra-template-' to non-prefixed templates, leaving any + // @scope/ intact. + const packageMatch = template.match(/^(@[^/]+\/)?(.+)$/); + const scope = packageMatch[1] || ''; + const templateName = packageMatch[2]; + + const name = templateName.startsWith(templateToInstall) + ? templateName + : `${templateToInstall}-${templateName}`; + templateToInstall = `${scope}${name}`; } }