如何用原生的react,webpack,es6来使用蚂蚁金服的ant design组件库

 我来答
千锋教育
2018-07-31 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
展开全部
1.准备:
npm安装以下组件

a.安装react/antd:
npm install react react-dom antd --save

b.安装webpack/less:
npm install webpack less --save-dev

webpack根据需要选择使用-g安装

c.安装babel-loader以及其他相关package:
npm install babel-loader babel-core babel-preset-es2015 babel-preset-react --save-dev

d.选择安装style-loader/css-loader
npm install style-loader css-loader --save-dev

2. 配置webpack.config.js
具体配置可以查看webpack提供的例子,主要依赖的是babel-loader
babel-loader上也有webpack.config.js应该如何编写的例子,传送门: babel-loader

3. 编写我们的文件(例如: demo-antd.jsx)
只使用了antd提供的Button组件。只使用了antd提供的Button组件。
ps: 对比
import { Button } from 'antd';


import Button from 'antd/lib/button';

后者不会将antd中所有的内容都引入,如果你只是需要Button这么一种组件的话,推荐使用后一种写法。

4. 执行构建
webpack ./demo-antd.jsx demo-antd-bundle.js

将生成demo-antd-bundle.js文件

5. 在页面中引入bundle文件(demo-antd-bundle.js)

执行到这一步,在浏览器中查看页面可以应该可以看到一个原生样式的button元素,因为antd并没有将样式使用内联style的方式写入js文件中。

这里我们暂时将问题一搁置,来看看问题二:组件库的内部机制。

因为没有深入去看过antd的源代码,没法详细说明antd的在代码编写上的一些....怎么说,就是『代码为什么这样写』这个问题,有兴趣的话,可以去查看源码,正如 @陈吉浩 所说,查看github上的代码比npm下载后的代码更舒服。
巨蟹地对地啊
2017-04-18 · 超过13用户采纳过TA的回答
知道答主
回答量:40
采纳率:0%
帮助的人:24.5万
展开全部
1.准备:
npm安装以下组件

a.安装react/antd:
npm install react react-dom antd --save

b.安装webpack/less:
npm install webpack less --save-dev

webpack根据需要选择使用-g安装

c.安装babel-loader以及其他相关package:
npm install babel-loader babel-core babel-preset-es2015 babel-preset-react --save-dev

d.选择安装style-loader/css-loader
npm install style-loader css-loader --save-dev

2. 配置webpack.config.js
具体配置可以查看webpack提供的例子,主要依赖的是babel-loader
babel-loader上也有webpack.config.js应该如何编写的例子,传送门: babel-loader

3. 编写我们的文件(例如: demo-antd.jsx)
只使用了antd提供的Button组件。只使用了antd提供的Button组件。
ps: 对比
import { Button } from 'antd';


import Button from 'antd/lib/button';

后者不会将antd中所有的内容都引入,如果你只是需要Button这么一种组件的话,推荐使用后一种写法。

4. 执行构建
webpack ./demo-antd.jsx demo-antd-bundle.js

将生成demo-antd-bundle.js文件

5. 在页面中引入bundle文件(demo-antd-bundle.js)

执行到这一步,在浏览器中查看页面可以应该可以看到一个原生样式的button元素,因为antd并没有将样式使用内联style的方式写入js文件中。

这里我们暂时将问题一搁置,来看看问题二:组件库的内部机制。

因为没有深入去看过antd的源代码,没法详细说明antd的在代码编写上的一些....怎么说,就是『代码为什么这样写』这个问题,有兴趣的话,可以去查看源码,查看github上的代码比npm下载后的代码更舒服。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
大王叫我抽你了
2017-04-18 · TA获得超过6991个赞
知道大有可为答主
回答量:5018
采纳率:0%
帮助的人:1012万
展开全部
这种配置方式和你的可能有点不同,仅作参考dev.config.js部分varpath=require('path');varwebpack=require('webpack');varExtractTextPlugin=require('extract-text-webpack-plugin');varautoprefixer=require('autoprefixer');varcsswring=require('csswring');module.exports={devtool:'cheap-module-eval-source-map',entry:['webpack-hot-middleware/client','./src/index',],output:{filename:'bundle.js',path:path.join(__dirname,'/dist/'),publicPath:'/dist/',},plugins:[newwebpack.DefinePlugin({__DEVELOPMENT__:true}),newExtractTextPlugin('bundle.css'),newwebpack.optimize.OccurenceOrderPlugin(),newwebpack.HotModuleReplacementPlugin(),newwebpack.NoErrorsPlugin(),newwebpack.ProvidePlugin({jQuery:'jquery',}),],resolve:{extensions:['','.jsx','.js','.json'],modulesDirectories:['node_modules','src'],},module:{loaders:[{test:/bootstrap\/js\//,loader:'imports?jQuery=jquery',},{test:/\.woff(\?v=\d+\.\d+\.\d+)?$/,loader:'url?limit=10000&mimetype=application/font-woff',},{test:/\.woff2(\?v=\d+\.\d+\.\d+)?$/,loader:'url?limit=10000&mimetype=application/font-woff2',},{test:/\.ttf(\?v=\d+\.\d+\.\d+)?$/,loader:'url?limit=10000&mimetype=application/octet-stream',},{test:/\.otf(\?v=\d+\.\d+\.\d+)?$/,loader:'url?limit=10000&mimetype=application/font-otf',},{test:/\.eot(\?v=\d+\.\d+\.\d+)?$/,loader:'file',},{test:/\.svg(\?v=\d+\.\d+\.\d+)?$/,loader:'url?limit=10000&mimetype=image/svg+xml',},{test:/\.js$/,loaders:['react-hot','babel?stage=0&loose[]=es6.modules'],exclude:/node_modules/,},{test:/\.scss$/,loader:'css?localIdentName=[path]!postcss-loader!sass',},{test:/\.png$/,loader:'file?name=[name].[ext]',},{test:/\.jpg$/,loader:'file?name=[name].[ext]',}],},postcss:function(){return[autoprefixer({browsers:['last2versions','safari5','ie9','ios6','android4']}),csswring];},};prod.config,js部分varpath=require('path');varwebpack=require('webpack');varExtractTextPlugin=require('extract-text-webpack-plugin');varautoprefixer=require('autoprefixer');varcsswring=require('csswring');module.exports={devtool:'source-map',entry:['./src/index',],output:{filename:'bundle.js',path:path.join(__dirname,'../dist/'),publicPath:'dist/',},plugins:[newwebpack.DefinePlugin({'process.env':{NODE_ENV:'"production"',},__DEVELOPMENT__:false,}),newExtractTextPlugin('bundle.css'),newwebpack.optimize.DedupePlugin(),newwebpack.optimize.OccurenceOrderPlugin(),newwebpack.optimize.UglifyJsPlugin({compress:{warnings:false,},}),newwebpack.ProvidePlugin({jQuery:'jquery',}),],resolve:{extensions:['','.jsx','.js','.json'],modulesDirectories:['node_modules','src'],},module:{loaders:[{test:/bootstrap\/js\//,loader:'imports?jQuery=jquery',},{test:/\.woff(\?v=\d+\.\d+\.\d+)?$/,loader:'url?limit=10000&mimetype=application/font-woff',},{test:/\.woff2(\?v=\d+\.\d+\.\d+)?$/,loader:'url?limit=10000&mimetype=application/font-woff2',},{test:/\.ttf(\?v=\d+\.\d+\.\d+)?$/,loader:'url?limit=10000&mimetype=application/octet-stream',},{test:/\.otf(\?v=\d+\.\d+\.\d+)?$/,loader:'url?limit=10000&mimetype=application/font-otf',},{test:/\.eot(\?v=\d+\.\d+\.\d+)?$/,loader:'file',},{test:/\.svg(\?v=\d+\.\d+\.\d+)?$/,loader:'url?limit=10000&mimetype=image/svg+xml',},{test:/\.js$/,loaders:['react-hot','babel?stage=0&loose[]=es6.modules'],exclude:/node_modules/,},{test:/\.scss$/,loader:'css!postcss-loader!sass',},{test:/\.png$/,loader:'file?name=[name].[ext]',},{test:/\.jpg$/,loader:'file?name=[name].[ext]',}],},postcss:function(){return[autoprefixer({browsers:['last2versions','safari5','ie9','ios6','android4']}),csswring];},};
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式