From 7a78062483ceb577b3e2056d154c0efd94749bc5 Mon Sep 17 00:00:00 2001 From: Orta Therox Date: Fri, 24 Jan 2025 11:13:13 +0000 Subject: [PATCH 1/4] Deprecate CRA --- README.md | 10 +++++- packages/create-react-app/createReactApp.js | 34 +++++++++++++++++++++ packages/create-react-app/package.json | 2 +- 3 files changed, 44 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 4672c9f993d..c517fa8059a 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,12 @@ -# Create React App [![Build & Test](https://github.com/facebook/create-react-app/actions/workflows/build-and-test.yml/badge.svg?branch=main)](https://github.com/facebook/create-react-app/actions/workflows/build-and-test.yml) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-green.svg)](https://github.com/facebook/create-react-app/blob/main/CONTRIBUTING.md) +# Create React App is Deprecated + +Create React App was one of the key tools for getting a React project up-and-running in 2017-2021, it is now in long-term stasis and we recommend that you migrate to one of React frameworks documented on ["Start a New React Project"](https://react.dev/learn/start-a-new-react-project). + +If you are following a tutorial to learn React, there is still value in continuing your tutorial, but we do not recommend starting production apps based on Create React App. + +--- + +## Create React App [![Build & Test](https://github.com/facebook/create-react-app/actions/workflows/build-and-test.yml/badge.svg?branch=main)](https://github.com/facebook/create-react-app/actions/workflows/build-and-test.yml) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-green.svg)](https://github.com/facebook/create-react-app/blob/main/CONTRIBUTING.md) Logo diff --git a/packages/create-react-app/createReactApp.js b/packages/create-react-app/createReactApp.js index b3c7ca7c1d6..d9242079949 100755 --- a/packages/create-react-app/createReactApp.js +++ b/packages/create-react-app/createReactApp.js @@ -53,9 +53,43 @@ function isUsingYarn() { return (process.env.npm_config_user_agent || '').indexOf('yarn') === 0; } +function hasGivenWarning() { + const ourPackageInNodeModules = path.join('node_modules', packageJson.name); + const warningFilePath = path.join( + ourPackageInNodeModules, + 'given-deprecation-warning' + ); + return fs.existsSync(warningFilePath); +} + +function writeWarningFile() { + const ourPackageInNodeModules = path.join('node_modules', packageJson.name); + const warningFilePath = path.join( + ourPackageInNodeModules, + 'given-deprecation-warning' + ); + fs.writeFileSync(warningFilePath, 'true'); +} + let projectName; function init() { + if (!hasGivenWarning()) { + console.log(chalk.yellow.bold('create-react-app is deprecated.')); + console.log(''); + console.log( + 'You can find a list of up-to-date React frameworks on react.dev' + ); + console.log( + chalk.underline('https://react.dev/learn/start-a-new-react-project') + ); + console.log(''); + console.log( + chalk.grey('This error message will only be shown once per install.') + ); + writeWarningFile(); + } + const program = new commander.Command(packageJson.name) .version(packageJson.version) .arguments('') diff --git a/packages/create-react-app/package.json b/packages/create-react-app/package.json index 0624a442834..325c1433f90 100644 --- a/packages/create-react-app/package.json +++ b/packages/create-react-app/package.json @@ -1,6 +1,6 @@ { "name": "create-react-app", - "version": "5.0.1", + "version": "5.0.2", "keywords": [ "react" ], From 81e5b00019183e7df81dcee5c80b7b2908484c07 Mon Sep 17 00:00:00 2001 From: Orta Therox Date: Fri, 24 Jan 2025 11:43:54 +0000 Subject: [PATCH 2/4] Global installs dont have a local node_modules, so use __dirname --- packages/create-react-app/createReactApp.js | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/packages/create-react-app/createReactApp.js b/packages/create-react-app/createReactApp.js index d9242079949..b7ea395a774 100755 --- a/packages/create-react-app/createReactApp.js +++ b/packages/create-react-app/createReactApp.js @@ -54,21 +54,19 @@ function isUsingYarn() { } function hasGivenWarning() { - const ourPackageInNodeModules = path.join('node_modules', packageJson.name); - const warningFilePath = path.join( - ourPackageInNodeModules, + const localWarningFilePath = path.join( + __dirname, 'given-deprecation-warning' ); - return fs.existsSync(warningFilePath); + return fs.existsSync(localWarningFilePath); } function writeWarningFile() { - const ourPackageInNodeModules = path.join('node_modules', packageJson.name); - const warningFilePath = path.join( - ourPackageInNodeModules, + const localWarningFilePath = path.join( + __dirname, 'given-deprecation-warning' ); - fs.writeFileSync(warningFilePath, 'true'); + fs.writeFileSync(localWarningFilePath, 'true'); } let projectName; From aa9414fef953306181162808883ebccc731ac301 Mon Sep 17 00:00:00 2001 From: Ricky Date: Mon, 27 Jan 2025 21:44:13 -0500 Subject: [PATCH 3/4] Update README.md --- README.md | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index c517fa8059a..47c00958973 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,11 @@ -# Create React App is Deprecated - -Create React App was one of the key tools for getting a React project up-and-running in 2017-2021, it is now in long-term stasis and we recommend that you migrate to one of React frameworks documented on ["Start a New React Project"](https://react.dev/learn/start-a-new-react-project). - -If you are following a tutorial to learn React, there is still value in continuing your tutorial, but we do not recommend starting production apps based on Create React App. - ---- - ## Create React App [![Build & Test](https://github.com/facebook/create-react-app/actions/workflows/build-and-test.yml/badge.svg?branch=main)](https://github.com/facebook/create-react-app/actions/workflows/build-and-test.yml) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-green.svg)](https://github.com/facebook/create-react-app/blob/main/CONTRIBUTING.md) +> [!CAUTION] +> ## Deprecated +> Create React App was one of the key tools for getting a React project up-and-running in 2017-2021, it is now in long-term stasis and we recommend that you migrate to one of React frameworks documented on [Start a New React Project](https://react.dev/learn/start-a-new-react-project). +> +> If you are following a tutorial to learn React, there is still value in continuing your tutorial, but we do not recommend starting production apps based on Create React App. + Logo Create React apps with no build configuration. From d06c8b7ef507dcaba7b673a3ba96aea60617bae2 Mon Sep 17 00:00:00 2001 From: Rick Hanlon Date: Tue, 28 Jan 2025 17:16:34 -0500 Subject: [PATCH 4/4] format --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 47c00958973..e56eda93e40 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,11 @@ ## Create React App [![Build & Test](https://github.com/facebook/create-react-app/actions/workflows/build-and-test.yml/badge.svg?branch=main)](https://github.com/facebook/create-react-app/actions/workflows/build-and-test.yml) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-green.svg)](https://github.com/facebook/create-react-app/blob/main/CONTRIBUTING.md) > [!CAUTION] +> > ## Deprecated +> > Create React App was one of the key tools for getting a React project up-and-running in 2017-2021, it is now in long-term stasis and we recommend that you migrate to one of React frameworks documented on [Start a New React Project](https://react.dev/learn/start-a-new-react-project). -> +> > If you are following a tutorial to learn React, there is still value in continuing your tutorial, but we do not recommend starting production apps based on Create React App. Logo