webpack是一个模块打包器。能够对模块的依赖关系进行静态分析,然后根据指定规则生成静态资源。webpack2在配置文件格式上做了一些变动,比webpack1新增了
安装
前提是安装好Node.js,
全局安装:
npm install -g webpack
作为项目开发依赖安装:
npm install --save-dev webpack
使用
这里以新建配置文件来执行,项目根目录下新建webpack.config.js文件,配置如下:
var webpack = require('webpack');
var path = require('path');
var config = {
    entry:"entry.js",//入口文件路径
    output:{//输出文件
        path:path.resolve(__dirname,'build'),
        filename:"[name].bundle.js"
    },
    module:{//模块
        ...
    }
}
module.exports = config;
配置文件的结构大致是以上的结构。
运行
$ webpack
常用xxx-Loader的使用:
style-loader和css-loader
style-loader把js字符串生成为style节点;css-loader是把css转换为js输出。两者经常一起使用。
安装
npm install --save-dev css-loader
使用
在webpack.config.js文件配置如下:
module:{
    rules:[{
        test:/\.css$/,
        use:[
          { loader:"stycss-loader" },
          { loader:"css-loader" }
        ]
    }]
}
html-loader
html-loader是把html文件转换为js.
安装
npm install --save-dev html-loader
使用
在webpack.config.js文件配置如下:
module:{
    rules:[{
        test:/\.html$/,
        use:[
            {
                loader:"html-loader",
                option: {
                    minimize:true
                }
            }
        ]
    }]
}
less-loader
less-loader是把less编译为css.
安装
npm install --save-dev less-loader
使用
在webpack.config.js文件配置如下:
module:{
    rules:[
        {
            test:/\.less$/,
            use:[
                {
                    loader:"style-loader"
                },
                {
                    loader:"css-loader"
                },
                {
                    loader:"less-loader"
                }
            ]
        }
    ]
}
sass-loader
sass-loader是将sass编译为css。
安装
npm install --save-dev sass-loader
使用
在webpack.config.js文件配置如下:
modu:{
    rules:[
        {
            test:/.\scss$/,
            use:[
                {
                    loader:"style-loader"
                },
                {
                    loader:"css-loader",
                    option:{ sourceMap:true }
                },
                {
                    loader:"sass-loader",
                    option:{ sourceMap:true }
                }
            ]
        }
    ]
}
sourceMap:true用于启用CSS的source map
插件使用
想要使用一个插件,你只需要require()它,然后把它添加到plugins数组中。
BannerPlugin
内置插件BannerPlugin,用来给输出的文件头部添加注释信息。
使用
在webpack.config.js文件配置如下:
plugins:[
    new webpack.BannerPlugin('添加注释信息...')
]
HtmlWebpackPlugin
简化HTML文件的创建,为webpack包提供服务,可以用来生成HTML5文件。
安装
npm install --save-dev html-webpack-plugin
使用
在webpack.config.js文件配置如下:
var webpack = require('webpack');
var path = require('path');
var HtmlWebpackPlugin = require('html-webpack-plugin');
var config = {
    entry:"./entry.js",
    output:{
        path:path.resolve(__path,'build'),
        filename:"bundle.js"
    }
    plugins:[
        new HtmlWebpackPlugin()
    ]
}
module.exports = config;
这将会生成一个包含bundle.js引入信息的HTML文件。