如何用源生的 React, Webpack,ES6 来使用 Ant Design 组件库?
本文是在知乎同名问题下的回答,在这里也记录一下。
Link: 知乎原回答,GitHub demo
以下是在知乎的回答
最近刚好开始尝试 Ant Design。之前我用过 Bootstrap、Semantic UI 和 Material Design Lite。和这些库相比 antd 的确是有自己的优势的。
针对题主的问题,我可以分享点自己的经验。
GitHub 的 demo 代码:antd-demo
这个 demo 是我从实际项目中摘出来的。用了 React Router、Webpack 和 Babel。其中 Webpack 用了 assets-webpack-plugin
和 extract-text-webpack-plugin
两个插件。
其实在实际项目中还用了 CSSModule 和 postcss,这里为了简化就去掉了。
另外还用了 webpack-dev-server
和 react-hot-loader
,都是开发必不可少的,所以就留着了。
这是文件结构:
/build
:Webpack 构建的 js 和 css 文件/config
:应用的配置文件,包括 webpack.config 和 webpack.config.dev 的/src
:源代码/src/components
:用于其他页面的 React 组件/src/Dashboard
:应用的 Dashboard 页/src/Login
:应用的 Login 页/src/router
:React Router 实现的路由/src/index.jsx
:前端入口页面/src/server.js
:一个简单的 Node 服务器
使用
下载下来之后运行 npm start
。在浏览器中访问 localhost:3000
即可。
运行
1 | "start": "npm run babel-w & npm run dev-webpack & npm run server", |
npm start
做了两件事:
- 启动
webpack-dev-server
。Webpack 构建出临时文件,并由webpack-dev-server
提供(localhost:8080/build)。通过插件实现了动态加载和文件分离。 - 启动 Node 服务器,提供访问服务。
Webpack
1 | const path = require('path'); |
这是 Webpack 2 的配置文件(和 Webpack 1 有不同)。注意这个是用来构建正式文件的,即 webpack.config.js
。开发环境中使用的是 webpack.config.dev.js
。二者大同小异,主要是开发环境增加了 react-hot-loader
,实现了前端热更新。
Babel
如果你只关注前端的话,那么 Babel 是使用 babel-loader
在 Webpack 构建时起作用的,不需要自己手动转换。如果你同时还关注后端,其实自从 Node 7.6 支持箭头函数之后,主要的 ES2015 语法都源生支持了,除了 import/export
,不一定非得用 Babel。
如果发现哪里没摘干净或者写错了,欢迎在 issue 指出。