请自行百度
请自行百度
E:\AllWorkspace\react>create-react-app demo
Creating a new React app in E:\AllWorkspace\react\demo.
Installing packages. This might take a couple of minutes.
Installing react, react-dom, and react-scripts with cra-template...
removed 1 package in 8.364s
Created git commit.
Success! Created uml-test at E:\AllWorkspace\react\demo
Inside that directory, you can run several commands:
npm start
Starts the development server.
npm run build
Bundles the app into static files for production.
npm test
Starts the test runner.
npm run eject
Removes this tool and copies build dependencies, configuration files
and scripts into the app directory. If you do this, you can’t go back!
We suggest that you begin by typing:
cd demo
npm start
Happy hacking!
安装完成后,目录结构:
├── README.md
├── node_modules
├── package.json
├── .gitignore
├── public
│ ├── favicon.ico
│ ├── index.html
│ └── manifest.json
│── src
│ ├── App.css
│ ├── App.js
│ ├── App.test.js
│ ├── index.css
│ ├── index.js
│ ├── logo.svg
│ └── serviceWorker.js
E:\AllWorkspace\react>cd demo
E:\AllWorkspace\react\uml-test>npm start
> [email protected] start E:\AllWorkspace\react\demo
> react-scripts start
i 「wds」: Project is running at http://192.168.31.27/
i 「wds」: webpack output is served from
i 「wds」: Content not from webpack is served from E:\AllWorkspace\react\demo\public
i 「wds」: 404s will fallback to /
Starting the development server...
Compiled successfully!
You can now view uml-test in the browser.
Local: http://localhost:3000
On Your Network: http://192.168.31.27:3000
Note that the development build is not optimized.
To create a production build, use npm run build.
我们直接将从 Landing 上下载的 Ho##me 文件夹直接拷贝到 src 文件包里;
├── README.md
├── ...
├── public
│ ├── ...
│── src
+ ├── Home
+ │ ├── less
+ │ ├── index.js
+ │ ├── ...
│ ├── App.css
│ ├── App.js
│ ├── App.test.js
│ ├── index.css
│ ├── index.js
│ ├── logo.svg
│ └── serviceWorker.js
我们依赖 ant design 的相关组件,动效依赖 ant motion 里相关动效组件,具体查看以下:
npm install antd enquire-js rc-queue-anim rc-scroll-anim rc-tween-one --save
npm install rc-banner-anim --save
npm install @ant-design/compatible --save
npm install babel-plugin-import --save-dev
npm install react-app-rewired customize-cra less less-loader
安装完 less 加载 后, 我们还需要修改 package.json 里的启动配置。
/* package.json */
"scripts": {
- "start": "react-scripts start",
+ "start": "react-app-rewired start",
- "build": "react-scripts build",
+ "build": "react-app-rewired build",
- "test": "react-scripts test",
+ "test": "react-app-rewired test",
}
然后在项目根目录创建一个 config-overrides.js 用于修改默认配置。
├── README.md
├── node_modules
├── package.json
├── .gitignore
+── config-overrides.js
├── public
│ ├── ...
│── src
│ ├── Home
│ └── ...
const { override, fixBabelImports, addLessLoader } = require('customize-cra');
module.exports = override(
// 按需加载 antd
fixBabelImports('import', {
libraryName: 'antd',
libraryDirectory: 'es',
style: true,
}),
// 添加加载 less 的 javascriptEnabled 和 antd 的主题配置。
addLessLoader({
lessOptions: {
javascriptEnabled: true,
modifyVars: { '@primary-color': '#1DA57A' },
}
}),
);
更改的 src 里的 index.js 页面,打开 index.js,引入 Home 文件包并渲染。
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
//- import App from './App';
import App from './Home';
import * as serviceWorker from './serviceWorker';
ReactDOM.render(<App />, document.getElementById('root'));
// If you want your app to work offline and load faster, you can change
// unregister() to register() below. Note this comes with some pitfalls.
// Learn more about service workers: http://bit.ly/CRA-PWA
serviceWorker.unregister();
完成以上步骤之后,我们再启动 npm start 即可查看在 landing 上下载的模板。
E:\AllWorkspace\react\uml-test>npm start
> [email protected] start E:\AllWorkspace\react\uml-test
> react-app-rewired start
i 「wds」: Project is running at http://192.168.31.27/
i 「wds」: webpack output is served from
i 「wds」: Content not from webpack is served from E:\AllWorkspace\react\uml-test\public
i 「wds」: 404s will fallback to /
Starting the development server...
Failed to compile.
./src/index.js
Error: Cannot find module 'babel-plugin-import' from 'E:\AllWorkspace\react\uml-test'
at Array.map ()
原因:没有安装less依赖
解决:安装less依赖即可
npm install babel-plugin-import --save-dev
原因:主要是babel-plugin-import插件版本差异导致,新版本需要增加 官网之外的东西,增加配置文件 lessOptions: {}
const { override, fixBabelImports, addLessLoader } = require('customize-cra');
module.exports = override(
// 按需加载 antd
fixBabelImports('import', {
libraryName: 'antd',
libraryDirectory: 'es',
style: true,
}),
// 添加加载 less 的 javascriptEnabled 和 antd 的主题配置。
addLessLoader({
lessOptions: {
javascriptEnabled: true,
modifyVars: { '@primary-color': '#1DA57A' },
}
}),
);