npm install webpack -g
npm init //运行后 按提示填写 当然嫌麻烦 就直接下一步 下一步就好 无伤大碍
npm install webpack --save-dev //--save-dev 的意思是将这个安装过程记录到我们的package.json依赖管理文件里完后新建一个文件并命名为webpack.config.js(如同我们的常规的 gulpfile.js、Gruntfile.js),就是一个配置项,告诉 webpack 它需要做什么。
var webpack = require("webpack");
entry: { index : "./src/main.js" },入口文件输出配置
//配置编译成功后文件存放的位置output: { path: "dist/js", //编译后文件所在的文件夹 filename: "[name].js" //根据入口文件名命名编译后的文件名,编译后文件还是叫main.js },加载器配置
module: { //最关键的一块配置,它告知 webpack 每一种文件都需要使用什么加载器来处理 loaders: [ { test: /.css$/, loader: "style-loader!css-loader" }, { test: /.js$/, loader: "jsx-loader?harmony" }, { test: /.scss$/, loader: "style!css!sass?sourceMap"}, { test: /.(png|jpg)$/, loader: "url-loader?limit=8192"} ] },其他配置
resolve: { //自动扩展文件后缀名,意味着我们require模块可以省略不写后缀名 extensions: ["", ".js", ".json", ".scss"] }ok!好记忆不如烂笔头,现在我们来自己搭建一个react的开发环境吧!
build存放编译后的文件,development存放react代码的文件夹,components存放react组件的文件夹,node_modules存放安装的依赖
我们先要安装一些项目依赖:
npm install --save-dev react react-domnpm install --save-dev babel-core babel-loader babel-preset-es2015 babel-preset-reactnpm install --save-dev style-loader css-loader sass-loader url-loadernpm install --save-dev webpack-dev-server //自动刷新修改后的结果,在webpack.config.js中配置webpack-dev-server,//在这里需要修改下entry的路径,给它加一个webpack/hot/dev-server,后文会提到要是安装失败那就分开一个个装,还不行就用淘宝的cnpm装 ,还不行就看看你的node和npm的环境变量等配置(亲身体会T_T)
npm install cnpm -g
var path = require("path");var webpack = require("webpack"); //加载webpack依赖包module.exports = { entry: ["webpack/hot/dev-server", path.resolve(__dirname, "./development/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"] } //将react编译成js文件 }, { test: /.css$/, loader: "style-loader!css-loader" },//打包css文件 { test: /.scss$/, loader: "style!css!sass?sourceMap"},//编译sass文件 { test: /.(png|jpg)$/, loader: "url-loader?limit=8192"}//对图片进行打包 ] }, plugins: [ new webpack.HotModuleReplacementPlugin() ], resolve: { //自动扩展文件后缀名 extensions: ["", ".js", ".json", ".scss", ".ts"] }};main.js内容如下:
let React = require("react");let ReactDOM = require("react-dom");let AppComponent = require("./components/index.js");ReactDOM.render(<AppComponent />, document.getElementById("content"));index.js内容如下:
var React = require("react");var ProductBox;ProductBox = React.createClass({ render: function () { return ( <div className="productBox"> hello react&es2015&webpack!!! </div> ); }});module.exports = ProductBox;index.html内容如下:
<!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 build dev,成功后浏览器访问地址location:8080,就会显示出对应界面