当使用create-react-app和custom-react-scripts时,我总是安装了React 16(最新版本)。是否有办法创建一个带有旧版本的新项目,例如React 15?
当使用create-react-app和custom-react-scripts时,我总是安装了React 16(最新版本)。是否有办法创建一个带有旧版本的新项目,例如React 15?
如果你因为 React v18 而来到这里,并且想要回到之前的非更改破坏版本,以下是我所做的:
在你的 package.json
中替换:
"react": "^18.0.0"
"react-dom": "^18.0.0"
随着
"react": "^17.0.2"
"react-dom": "^17.0.2"
然后进入您的入口文件 index.js
在顶部替换:
import ReactDOM from 'react-dom/client'
与
import ReactDOM from 'react-dom';
在您的index.js
文件中,仍需进行以下替换:
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
<React.StrictMode>
<App />
</React.StrictMode>
);
随着
ReactDOM.render(
<React.StrictMode>
<App />
</React.StrictMode>,
document.getElementById('root')
);
node_modules
文件夹并运行yarn install
或者npm install
yarn start
或者npm run start
@testing-library/react
更改为版本12。即:
"@testing-library/react": "^12.0.0"和"@testing-library/user-event": "^12.0.0" - MattAPP_NAME='my-app' && npx create-react-app $APP_NAME && cd $APP_NAME && npm install react@17 react-dom@17 @testing-library/react@12 @types/react@17 @types/react-dom@17 @testing-library/react@12 @testing-library/user-event@12
。然后,您只需要按照上述说明更新index.tsx文件即可。 - Jonathan"devDependencies": {
"react-scripts": "1.0.14"
},
"dependencies": {
"react": "^15.6.1",
"react-dom": "^15.6.1"
},
除了上述答案之外,进行所有操作后,我必须更新这些库(用于TS模板):
"@testing-library/react": "^12.1.1",
"@testing-library/user-event": "^12.5.0"
npx create-react-app app-name
它将始终安装最新的React包。然后,在react 18.2.0
中,与以前版本相比有一些不同之处。
您需要进入文件夹结构并删除 package-lock.json
( 使用yarn的话则是 yarn.lock
) 和 node_modules
文件。
接下来,您需要打开 package.json
文件并更改和编辑这些依赖项:
"react": "^18.2.0",
"react-dom": "^18.2.0",
to
"react": "^17.0.2",
"react-dom": "^17.0.2",
在您的 package.json
的dependencies(依赖项)文件中添加如下内容。
index.js
文件进行更改,import ReactDOM from 'react-dom/client'
to
import ReactDOM from 'react-dom';
index.js
文件并更改了索引文件的下面部分后。const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
<React.StrictMode>
<App />
</React.StrictMode>
);
to
ReactDOM.render(
<React.StrictMode>
<App />
</React.StrictMode>,
document.getElementById('root')
);
如果您正在使用npm-->> npm install
安装完成后,您可以运行应用程序npm start
。
或者
如果您正在使用yarn-->> yarn install
安装完成后,您可以运行应用程序yarn start
。
--谢谢-- --愉快的编码--
React 18
创建了项目,可以通过以下步骤将版本降级到之前的版本。
您需要在两个文件中进行修改,它们分别是 package.json
和 index.js
。您应该还要删除 node_modules
。
步骤1
您的 index.js
现在可能看起来像这样
import React from "react";
import ReactDOM from "react-dom/client";
import "./index.css";
import App from "./App";
const root = ReactDOM.createRoot(document.getElementById("root"));
root.render(
<React.StrictMode>
<App />
</React.StrictMode>
);
您需要更改 import 导入的 ReactDOM
,并取消 const root
行
index.js
的新代码应该像这样
import React from "react";
import ReactDOM from "react-dom";
import "./index.css";
import App from "./App";
ReactDOM.render(
<React.StrictMode>
<App />
</React.StrictMode>,
document.getElementById('root')
);
步骤2
打开你的package.json
文件并在依赖项中更新所需的React版本。
"dependencies": {
...
"react": "^17.0.0",
"react-dom": "^17.0.0",
...
},
第三步
删除你的node_modules文件夹,如果你使用npm,则运行npm i
命令。如果你使用yarn,则运行yarn install
命令。完成这一步之后,你可以使用npm start
或者yarn start
命令来启动应用程序。
第四步(可选:如果你仍然有问题,但我不建议这样做)
删除你的package-lock.json
文件(对于npm),或者yarn.lock
文件(对于yarn),然后从第三步重新开始。
"react": "^17.0.2",
"react-dom": "^17.0.2",
最后,我使用 npm install
再次安装了我的软件包。
首先创建React应用程序 npx create-react-app . (.代表当前文件夹)
"@material-ui/core": "^4.12.2",
"@material-ui/icons": "^4.11.2",
"@testing-library/jest-dom": "^5.14.1",
"@testing-library/react": "^11.2.7",
"@testing-library/user-event": "^12.8.3",
"firebase": "^8.8.0",
"firebase-login": "^1.0.0",
"firebase-tools": "^9.16.0",
"react": "^17.0.2",
"react-currency-format": "^1.0.0",
"react-dom": "^17.0.2",
"react-router-dom": "^5.2.0",
"react-scripts": "4.0.3",
"web-vitals": "^1.1.2"
根据所需的React版本和React-DOM版本,以及其他必需版本
(它将根据package.json下载所有数据)
ReactDOM.render(`enter code here`
<React.StrictMode>
<App />
</React.StrictMode>,
document.getE1ementById( 'root' )
);
Replace this with
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
<React.StrictMode>
<App />
</React.StrictMode>
);
删除 node modules、package-lock.json 和 yarn.lock 文件。
在 package.json 的依赖部分:
"dependencies": {
"@material-ui/core": "^4.12.2",
"@material-ui/icons": "^4.11.2",
"@testing-library/jest-dom": "^4.2.4",
"@testing-library/react": "^9.5.0",
"@testing-library/user-event": "^7.2.1",
"firebase": "^8.8.0",
"firebase-login": "^1.0.0",
"firebase-tools": "^0.1.6",
"react": "^16.13.1",
"react-currency-format": "^1.0.0",
"react-dom": "^16.13.1",
"react-router-dom": "^5.2.0",
"react-scripts": "^5.0.1"
}
在 index.js 文件中:
import React from "react";
import ReactDOM from "react-dom";
import "./index.css";
import App from "./App";
import reportWebVitals from "./reportWebVitals";
ReactDOM.render(
<React.StrictMode>
<App />
</React.StrictMode>,
document.getElementById("root")
);
运行 npm cache clean --force 命令。
运行 npm install 或 yarn install 命令。
可选项
另外,如果您想添加一些其他依赖项或可能发生任何异常,以下步骤可能会有所帮助。
安装 React 脚本:
npm install react-scripts
npm install --save-dev web-vitals
yarn add web-vitals --dev
安装酶:
npm i --save-dev enzyme enzyme-adapter-react-16
安装JEST:
npm install --save-dev jest
yarn add --dev jest
yarn add --dev babel-jest babel-core
这对我有用...
运行此命令
npm uninstall react
2. 然后安装 React 17.0.2,只需运行此命令。
npm install react@17.0.2
安装React-DOM 17.0.2版本,请运行以下命令。
npm install --save react-dom@17.0.2
首先您需要在系统中安装npm,然后为了创建React应用程序,您需要运行以下命令:
sudo npm init react-app my-app --scripts-version 1.1.5
cd my-app
sudo npm install --save react@16.0.0
sudo npm install --save react-dom@16.0.0
对我来说非常好用。
sudo
并不是一个好主意。 - Matt Browne