Необходимые условия:
- Node.js (npm) установлен на вашем компьютере
Так что для довольно минимальной настройки вы хотите ...
Инициализация папки
cd path/to/my/folder
npm init
Создайте index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title></title>
</head>
<body>
<div id="root"></div>
<script src="./node_modules/react/umd/react.development.js"></script>
<script src="./node_modules/react-dom/umd/react-dom.development.js"></script>
<script src="./dist/main.js"></script>
</body>
</html>
Тогда вы захотите npm install --save-dev
...
- реагировать
- реагировать на дом
- веб-пакет
- webpack-cli
- @ babel / core
- babel-loader
- @ babel / preset-response
Создать.babelrc
{
"presets": ["@babel/preset-react"]
}
Создать webpack.config.js
module.exports = {
module: {
rules: [
{
test: /\.jsx?$/,
exclude: /node_modules/,
use: {
loader: "babel-loader"
}
}
]
}
};
Редактирование
package.json
скриптов для сборки
"scripts": {
"build": "webpack --mode development"
},
Напишите свой корневой компонент
Создайте папку src/components
и затем создайте src/components/app.jsx
:
import * as React from "react";
export class App extends React.Component {
render() {
return (
<div>
Hello, world!
</div>
);
}
}
Напишите ваш рендерер ReactDOM в
src/index.js
(обратите внимание .js, а не jsx - веб-пакет не найдет файл в противном случае, без дополнительных настроек):
import ReactDOM from "react-dom";
import { App } from "./components/app.jsx";
ReactDOM.render(
<App />,
document.getElementById("root")
);
Сборка:
npm run build
Откройте свой
path/to/my/folder/index.html
в современном браузере
И все готово!Теперь вы можете добавлять любые удобные дополнения по вашему желанию без каких-либо нежелательных наворотов.Я рекомендую TypeScript .
Для тех, кто читает, которым требуется поддержка старых браузеров , просто выполните следующие два шага:
npm install @babel/preset-env
- Редактировать
.babelrc
и добавьте @ babel / preset-env к своим пресетам:
{
"presets": ["@babel/preset-env", "@babel/preset-react"]
}