简介:html
webpack:是近期最火的一款模块加载器兼打包工具,它能把各类资源,例如JS(含JSX)、coffee、样式(含less/sass)、图片等都做为模块来使用和处理。前端
react:如今最热门的前端框架,毫无疑问是 React 。node
es2015:ECMAScript 6。react
以上是她们的基本定义,想一想能将她们结合在一块儿开发咱们的项目是多么的激动人心啊。固然在正式开发以前咱们也有不少准备工做须要作好,这也多是对新手最棘手的问题。下面咱们就直接进入正题吧。webpack
环境搭建:nginx
首选咱们需下载安装Node.js,下载地址:https://nodejs.org/en/ (注意:为了能支持es2015请下载4.0以上版本)git
安装了node以后咱们还须要npm也就是包管理器,固然新的node已经集成了npm的。因此此步骤能够跳过了es6
有了npm后,win+r而后输入cmd打开,而后输入命令:github
npm install webpack -g
执行命令后个人webpack就全局安装好了,这里提醒一下,在项目文件中咱们还须要将webpack写入package.json(局部安装)web
项目建立:
在D盘建立咱们的项目文件“reactPro”,目录结构以下:
在cmd中定位项目地址,执行命令:
cd D:\reactPro
D:
定位完成后,咱们利用npm生成package.json文件,执行命令:
npm init
上面命令执行完成以后咱们就生成了一个node项目,接下来就能够安装咱们的node模块了
首选安装webpack,执行命令:
npm install webpack --save-dev
而后安装webpack须要的加载器,执行命令:
npm install babel-loader babel-preset-es2015 babel-preset-react --save-dev
npm install react react-dom --save-dev
文件配置&运行:
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' }, module: { loaders: [ { test: /\.js?$/, exclude: /(node_modules|bower_components)/, loader: 'babel', query: { presets: ['es2015', 'react'] } } ] }, plugins: [ new webpack.HotModuleReplacementPlugin() ] };
npm install webpack-dev-server --save-dev
"scripts": { "build": "webpack", "dev": "webpack-dev-server --devtool eval --progress --colors --content-base build" }
{ "name": "reactpro1", "version": "1.0.0", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "bundle": "babel-node tools/run bundle", "build": "webpack", "dev": "webpack-dev-server --devtool eval --progress --colors --content-base build" }, "author": "jx", "license": "ISC", "devDependencies": { "babel-core": "^6.8.0", "babel-loader": "^6.2.4", "babel-preset-es2015": "^6.6.0", "babel-preset-react": "^6.5.0", "react": "^15.0.2", "react-dom": "^15.1.0", "webpack": "^1.13.0", "webpack-dev-server": "^1.14.1" }, "dependencies": { "webpack": "^1.13.0", "webpack-dev-server": "^1.14.1" }, "description": "" }
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>React Project</title> </head> <body> <script src="http://localhost:8080/webpack-dev-server.js"></script> <div id="content"></div> <script src="./bundle.js"></script> </body> </html>
npm run dev
react&es2015代码编写:
let React = require('react'); let ReactDOM = require('react-dom'); let AppComponent = require('./components/productBox.js'); ReactDOM.render(<AppComponent />, document.getElementById('content'));
var React = require('react'); var ProductBox; ProductBox = React.createClass({ render: function () { return ( <div className="productBox"> hello react&es2015&webpack! </div> ); } }); module.exports = ProductBox;
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>React Project</title> </head> <body> <script src="http://localhost:8080/webpack-dev-server.js"></script> <div id="content"></div> <script src="./bundle.js"></script> </body> </html>
npm run dev
总结: