react整合Ant Design Landing[首页模板集]

  • 安装nodejs
  • 安装create-react-app
  • 实用create-react-app 初始化
  • create-react-app demo
  • 进入目录并启动 cd demo & npm start
  • 页面访问
  • 下载设计后下载文档
  • [设计编辑页面Ant Design Landing入口](https://landing.ant.design/edit/)
  • 下载后的文档Home.zip目录和整合进demo项目
  • 安装依赖
  • 基本必要组件依赖
  • less 加载
  • 安装依赖
  • 配置加载 less
  • 创建 config-overrides.js
  • 修改入口文件
  • 完成
  • 常见错误
  • 错误一:Error: Cannot find module 'babel-plugin-import' from 'E:\AllWorkspace\react\demo'
  • 错误二:options has an unknown property 'modifyVars'. These properties are valid:


安装nodejs

请自行百度

安装create-react-app

请自行百度

实用create-react-app 初始化

create-react-app demo

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!

进入目录并启动 cd demo & npm start

安装完成后,目录结构:

├── 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

> uml-test@0.1.0 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.

页面访问

ant design 静态弹窗 ant design landing_ant design 静态弹窗

下载设计后下载文档

设计编辑页面Ant Design Landing入口

ant design 静态弹窗 ant design landing_ide_02

下载后的文档Home.zip目录和整合进demo项目

我们直接将从 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 design landing_加载_03

安装依赖

我们依赖 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 rc-banner-anim --save;// 如果用的是多屏滑动型的 banner,加上这条;
  • npm install @ant-design/compatible --save;// 如果使用了 Content7 模块,请加上这条;
  • npm install babel-plugin-import --save-dev; //按需加载 ant design ;umi 或 ant design pro 无需安装此项;

less 加载

安装依赖

npm install react-app-rewired customize-cra less less-loader

配置加载 less

安装完 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",
}

ant design 静态弹窗 ant design landing_加载_04

创建 config-overrides.js

然后在项目根目录创建一个 config-overrides.js 用于修改默认配置。

├── README.md
├── node_modules
├── package.json
├── .gitignore
+── config-overrides.js
├── public
│   ├── ...
│── src
│   ├── Home
│   └── ...

ant design 静态弹窗 ant design landing_App_05


config-overrides.js文件配置如下:

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' },
    }
  }),
);

ant design 静态弹窗 ant design landing_加载_06

修改入口文件

更改的 src 里的 index.js 页面,打开 index.js,引入 Home 文件包并渲染。

  • import App from ‘./App’; 改成 + import App from ‘./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:///CRA-PWA
serviceWorker.unregister();

ant design 静态弹窗 ant design landing_ide_07

完成

完成以上步骤之后,我们再启动 npm start 即可查看在 landing 上下载的模板。

ant design 静态弹窗 ant design landing_ide_08

常见错误

错误一:Error: Cannot find module ‘babel-plugin-import’ from ‘E:\AllWorkspace\react\demo’

E:\AllWorkspace\react\uml-test>npm start

> uml-test@0.1.0 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 (<anonymous>)

原因:没有安装less依赖
解决:安装less依赖即可

npm install babel-plugin-import --save-dev

错误二:options has an unknown property ‘modifyVars’. These properties are valid:

原因:主要是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' },
    }
  }),
);