React+Webpack+ES6从环境搭建到HelloWorld
来源:互联网 发布:openstack网络 编辑:程序博客网 时间:2024/04/30 19:01
转载请注明预见才能遇见的博客:http://my.csdn.net/
原文地址:http://blog.csdn.net/pcaxb/article/details/52212367
React是一个Facebook和Instagram用来创建用户界面的JavaScript库,是现在最热门的前端框架。Webpack 是当下最热门的前端资源模块化管理和打包工具。它可以将许多松散的模块按照依赖和规则打包成符合生产环境部署的前端资源。还可以将按需加载的模块进行代码分隔,等到实际需要的时候再异步加载。通过 loader 的转换,任何形式的资源都可以视作模块,比如 CommonJs 模块、 AMD 模块、 ES6 模块、CSS、图片、 JSON、Coffeescript、 LESS 等。ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准。因为当前版本的ES6是在2015年发布的,所以又称ECMAScript 2015。
webpack的模块化,react的组件化,以及es2015的各种新特性都很吸引人,网上也有很多入门的资料,但是很多都是偏概念的,本文将结合实际开发来搭建整个环境。下面我们进入正题:
环境搭建:
1.从官网下载最新版本的node.js安装
官网下载地址:
http://nodejs.org/en/
官网需要翻墙,如果没有翻墙的同学可以到nodejs中文网下载,下载地址:
http://nodejs.cn
如果你需要使用Homebrew安装nodejs,请参考我的另一篇博客:
http://blog.csdn.net/pcaxb/article/details/52046438
安装完Node之后,为了保证速度,需要使用淘宝镜像,命令如下:
(1)npm config set registry "http://registry.npm.taobao.org"(2)npm config list 可以查看配置
2.安装完nodejs之后,打开终端,执行命令:
npm install webpack -g
-g的意思是安装全局的webpack,但是我们实际的开发中还需要针对单个的项目进行webpack安装,执行命令:
npm install webpack --save-dev
创建项目:
1.创建一个根目录,目录名为react-webpack-master,执行命令:
mkdir react-webpack-master创建目录cd react-webpack-master/ 切换到该目录下
2.使用 npm init 初始化,生成 package.json 文件:执行命令:
npm init 自定义创建package.jsonnpm init -yes 可以创建默认的package.json
3.现在我们的项目已经创建好了,接下来我们来添加依赖包及插件
(1)局部安装Webpack,执行命令:
npm install webpack --save-dev
(2)安装React,--save 命令用于将包添加至 package.json 文件,执行命令:
npm install react react-dom --save-dev
(3)安装babel插件,babel插件是webpack需要的加载器,如果没有这几个加载器我们的jsx语法,和es2015语法就会报错。
npm install babel-loader babel-preset-es2015 babel-preset-react --save-dev
/** * Created by panca on 16/8/14. */var path = require('path');var webpack = require('webpack');module.exports = { entry: ['webpack/hot/dev-server', path.resolve(__dirname, './app/main.js')], output: { path: path.resolve(__dirname, './build'), filename: 'bundle.js' }, devServer: { inline: true, port: 8181 }, module: { loaders: [ { test: /\.js?$/, exclude: /(node_modules|bower_components)/, loader: 'babel', query: { presets: ['es2015', 'react'] } } ] }, plugins: [ new webpack.HotModuleReplacementPlugin() ]};
entry: 指定打包的入口文件 main.js。
output:配置打包结果,path定义了输出的文件夹,filename则定义了打包结果文件的名称。
devServer:设置服务器端口号为 8181,端口后你可以自己设定 。
module:定义了对模块的处理逻辑,这里可以用loaders定义了一系列的加载器,以及一些正则。当需要加载的文件匹配test的正则时,就会调用后面的loader对文件进行处理,这正是webpack强大的原因。
webpack-dev-server允许我们可以把本地项目跑在像nginx那样的web服务器上,更重要的是我们可以在package.json文件内定义scripts,同时修改webpack的配置文件来达到自动刷新的效果。
安装webpack-dev-server执行命令:
npm install webpack-dev-server --save-dev
在package.json文件中为scripts添加,方便使用命令:
"scripts": { "build": "webpack", "dev": "webpack-dev-server --devtool eval --progress --colors --content-base build"}
这里的命令是webpack,如果需要压缩编译的话,将webpack改成webpack -p
最终package.json文件如下
{ "name": "react-app", "version": "1.0.0", "description": "react-webpack-stu", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "build": "webpack", "dev": "webpack-dev-server --devtool eval --progress --colors --content-base build" }, "author": "", "license": "ISC", "devDependencies": { "babel-loader": "^6.2.4", "babel-preset-es2015": "^6.13.2", "babel-preset-react": "^6.11.1", "react": "^15.3.0", "react-dom": "^15.3.0", "webpack": "^1.13.1", "webpack-dev-server": "^1.14.1" }}
这里有一点提醒大家,package.json中name不能跟我们的模块和项目文件目录同名
项目代码编写:
1.index.html代码
<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <title>React Test</title></head><body><script src="http://localhost:8181/webpack-dev-server.js"></script><div id="content"></div><script src="./bundle.js"></script></body></html>
2.main.js代码
/** * Created by zeng on 2016/5/9. */let React = require('react');let ReactDOM = require('react-dom');let AppComponent = require('./components/Tab1');ReactDOM.render(<AppComponent />, document.getElementById('content'));
3.Tab1.js代码
/** * Created by panca on 16/8/15. */var React = require('react');var Tab1= React.createClass({ render: function () { return ( <div> React+Webpack+ES6从环境搭建到HelloWorld </div> ); }});module.exports = Tab1;
代码编译结束:
1.根目录下执行命令
npm run dev
2.浏览器直接访问:
http://localhost:8181/index.html
浏览器执行效果:
源码下载地址:
http://download.csdn.net/detail/pcaxb/9603705
- React+Webpack+ES6从环境搭建到HelloWorld
- React+Webpack+ES6从环境搭建到HelloWorld
- react + webpack + ES6 环境搭建
- webpack+ES6+react搭建简单开发环境
- 关于ES6+React+webpack的环境搭建
- 使用webpack搭建react ES6开发环境
- webpack+babel+es6+react环境搭建
- 搭建es6+react开发环境---webpack
- React系列1-飞速搭建React+ES6+Webpack开发环境
- webpack搭建ES6环境
- webpack+react+es6环境配置
- webPack+react 环境搭建
- 利用webpack搭建es6环境
- Webpack+React+ES6项目搭建(一)
- React+Webpack+ES6组合开发环境部署
- WEBPACK+REACT开发环境搭建
- 搭建 react+webpack开发环境
- 快速搭建 webpack + react 环境
- 数据库连接池---C3P0
- 简单的银行ATM系统
- oracle11g及plsql11.0 安装过程中的部分问题
- 【USACO题库】1.2.3 Name That Number命名那个数字
- 【数论】hdu1402 A * B Problem Plus(FFT)
- React+Webpack+ES6从环境搭建到HelloWorld
- 【转】程序包com.sun.image.codec.jpeg不存在 问题的完美解决
- NFC
- 高斯消元原理
- MFC 中 CString 如何转换为 LPCWSTR
- HDU 2085 核反应堆
- 与CNTK见面
- PSring MVC 学习总结(二)——控制器定义与@RequestMapping详解
- java过滤特殊字符