本质上,webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler)。当 webpack 处理应用程序时,它会递归地构建一个依赖关系图(dependency graph),其中包含应用程序须要的每一个模块,而后将全部这些模块打包成一个或多个 bundle。css
wepack中文文档html
/** * Created by zhanghaov on 2018/3/30. * 使用webpack,须要在根目录下配置webpack.config.js */ //webpack.config.js 结构 module.exports = { entry:{}, //入口文件,指示 webpack 应该使用哪一个模块,来做为构建其内部依赖图的开始 output:{},//出口,告诉 webpack 在哪里输出它所建立的 bundles,以及如何命名这些文件 module:{},//loader,让 webpack 可以去处理那些非 JavaScript 文件,css文件,sass、less、es6 plugins:[],//插件,插件的范围包括,从打包优化和压缩,一直到从新定义环境中的变量 devServer:{}//基于node.js构建本地服务器,浏览器监听,自动刷新显示修改后的结果(js文件,修改html文件不刷新) }
先看一个简单的webpack.config.js配置node
/** * Created by zhanghaov on 2018/3/24. */ const webpack = require('webpack'); const path = require('path'); const HtmlWebpackPlugin = require('html-webpack-plugin'); module.exports = { devtool:'eval-source-map',//Source Maps entry: "./app/main.js",//入口文件 output: { path: path.resolve(__dirname,'build'),//出口 filename: "bundle.js"//打包后输出文件的文件名 }, devServer:{ contentBase:'./public',//页面目录 historyApiFallback:true,//不跳转 inline:true //实时刷新 }, module: { rules: [ { test: /(\.jsx|\.js)$/, use: { loader:'babel-loader' }, exclude: /node_modules/ },{ test:/\.css$/, use:[{ loader:'style-loader', },{ loader:'css-loader' }] } ] }, plugins:[ new HtmlWebpackPlugin ({ //index.html 模板插件 template:__dirname + '/app/index.tmpl.html' }) ] }