Material-UI + React + Babel + Webpack 环境配置
来源:互联网 发布:学c语言需要什么基础 编辑:程序博客网 时间:2024/06/01 09:59
Material-UI 是一套用React写成的,符合Google Material Design 的UI组件库。
此库在编写的时候用到了ES6与ES7的一些特性,并用Babel构建,于是我稍作研究,给出最小的环境配置来使用Material-UI这套库。
初始化
创建一个项目目录并初始化项目(如果没有的话)
- 1
- 2
- 3
- 1
- 2
- 3
安装依赖
按照npm的提示初始化完毕这个目录后,开始安装依赖
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
第一行是生产用的 react 与 Material-UI 部分。
第二行是Babel转换器的核心部分。
第三行是Babel转换器的三个额外配置:ES2015(ES6),React,Stage1(ES7)。
第四行是Webpack的部分。
第二、三、四行的内容只在工程构建之前有用(用于开发:-dev)。
安装完毕之后呢,可以先检查一下 package.json
npm init
之后,目录中就会有一个 package.json
如果安装顺利,里面应该有至少这样一些部分:
版本号不重要,各位配置的时候说不定已经出了新的版本。
如果确认跟随本文配置失败,那可以试试完全按照我的版本号来配置。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
配置 Babel
配置Babel的方案有两种,一种是在目录中新建一个.babelrc
的文件,然后按照JSON格式写入规则。
另一种,可以将.babelrc
与 package.json
合并(个人推荐):
在 package.json
中添加一个域"babel"
,与之前的"dependencies"
同级。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
这等同于在.babelrc
中写入:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
这样就将Babel配置好了,接下来考虑一下配置Webpack。
配置 Webpack
在项目目录新建一个webpack.config.js
,并写入:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
看上去很像一个JSON,但它其实不是,它是一个JS对象,你可以把webpack.config.js
当成一个模块。
比起JSON,用JS模块来作为配置更灵活。因为JS模块可以进行运算,甚至配置一些自定义函数。而JSON只能配置一些比较死的东西。
其实也大致能猜出一二的,整个项目的入口是./entry.js
——与webpack.config.js
同个目录下的一个JS文件。
具体各个域都有什么用,更多的配置,参见官方文档。
配置 npm 脚本
现在我们还缺少一个构建脚本,编辑package.json
中的 "scripts"
域:
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
接下来我们就可以在项目目录下使用简单的构建脚本了:
- 1
- 1
如果是开发中,可以使用监听式的Webpack,差量打包,提升效率。
- 1
- 1
按照配置,打包生成的文件为 dist/bundle.js
。
至此,基本的环境已经配置完毕,我们来尝试一下调用Material-UI库。
Hello, Material-UI!
接下来用一个简洁的方式构建一个Web页面。
创建Web入口
在项目目录下创建一个index.html
,写入:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
这是最基本的入口,仅设置了编码,并引用了JS。
编写Webpack入口
编辑项目目录下的 entry.js
,写入:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
然后运行构建脚本:
- 1
- 1
输出了:
- 1
- 2
- 3
- 4
- 5
- 6
- 1
- 2
- 3
- 4
- 5
- 6
可以看到,这个Webpack构建一次还是相当花费时间的,bundle.js也不小。
对于Web应用来说,一开始就加载一个MB级别的资源不是一件好事。最好将bundle.js进一步压缩,并发布到CDN上加速。最好再写一个轻量的加载动画来提升用户体验。
现在可以看到目录下有了一个dist/bundle.js
。
运行
打开index.html
。
成功!如此我们就生成了一个HTML入口以及一个浏览器可以运行的前端JS文件。理论上来说可以配合任何的Web应用的后端进行开发。无论是使用PHP,Java Servlet、NodeJS(Express等)、Python、Ruby……都没有问题。
甚至可以部署到github.io上。
转载:http://blog.csdn.net/zccz14/article/details/51421324
- Material-UI + React + Babel + Webpack 环境配置
- Material-UI + React + Babel + Webpack 环境配置
- 配置React的Babel 6和Webpack 2环境
- React+Webpack+babel开发环境搭建
- Webpack+Babel+React开发环境搭建
- React+Webpack+Babel开发环境的搭建
- webpack+babel+es6+react环境搭建
- webpack+babel+react搭建
- 在React+Babel+Webpack环境中使用ESLint
- 使用webpack和babel搭建react开发环境
- 使用webpack和babel搭建react开发环境
- 重温 Webpack, Babel 和 React
- webpack入门+react环境配置
- webpack入门+react环境配置
- React+Webpack开发环境配置
- webpack+react+es6环境配置
- webpack 配置 react 开发环境
- React+Webpack开发环境配置
- ajaxSubmit上传文件
- dubbo-monitor监控安装
- 数据表多行数据转成多列数据
- 字节截取
- JS 判断字符串包含
- Material-UI + React + Babel + Webpack 环境配置
- java 用二维数组写的简单的推箱子,一个人,一个箱子,一个点的情况
- Android 徽章控件
- java.lang.NoSuchMethodError: org.springframework.core.io.ResourceEditor错误
- 性能分析工具之-- Eclipse Memory Analyzer tool(MAT)(一)
- 设计模式之代理模式------Cglib代理 简单运用
- HTML 颜色名对照表
- [docker]docker-compose跑zk集群
- java实训第十五天8/15