• webpack学习(五)配置详解


    配置详解

    //使用插件html-webpack-plugin打包合并html
    //使用插件extract-text-webpack-plugin打包独立的css
    //使用UglifyJsPlugin压缩代码
    var HtmlWebpackPlugin = require('html-webpack-plugin');
    var ExtractTextPlugin = require('extract-text-webpack-plugin');
    var webpack = require("webpack");
    module.exports = {
        entry: {
            bundle : './src/js/main.js'
        },
        output: {
            filename: "[name]-[hash].js",
            path: __dirname + '/dist'
        },
        module: {
            rules: [
                {
                    test: /.css$/,
                    use: ExtractTextPlugin.extract({
                        fallback: "style-loader",
                        use: "css-loader"
                    })
    
                },
                {
                    test: /.(png|jpg|jpeg|gif)$/,
                    use: 'url-loader?limit=8192'
                }
            ]
        },
       resolve:{
            extensions:['.js','.css','.json']  //用于配置程序可以自行补全哪些文件后缀
        }, plugins:[
    new HtmlWebpackPlugin({ title: 'hello webpack', template:'src/component/index.html', inject:'body', minify:{ //压缩HTML文件 removeComments:true, //移除HTML中的注释 collapseWhitespace:true //删除空白符与换行符 } }), new ExtractTextPlugin("[name].[hash].css"), new webpack.optimize.UglifyJsPlugin({ //压缩代码 compress: { warnings: false }, except: ['$super', '$', 'exports', 'require'] //排除关键字 }) ] };
    module.loader: 其中test是正则表达式,对符合的文件名使用相应的加载器./.css$/会匹配 xx.css文件,但是并不适用于xx.sass或者xx.css.zip文件.

    url-loader: 它会将样式中引用到的图片转为模块来处理; 配置信息的参数“?limit=8192”表示将所有小于8kb的图片都转为base64形式。
    entry: 模块的入口文件。依赖项数组中所有的文件会按顺序打包,每个文件进行依赖的递归查找,直到所有模块都被打成包;
    output:模块的输出文件,其中有如下参数:
    filename: 打包后的文件名
    path: 打包文件存放的绝对路径。
    publicPath: 网站运行时的访问路径。
    relolve.extensions: 自动扩展文件的后缀名,比如我们在require模块的时候,可以不用写后缀名的。
    relolve.alias: 模块别名定义,方便后续直接引用别名,无须多写长长的地址
    plugins 是插件项;

  • 相关阅读:
    复制书稿(book) (二分,贪心+dp)
    spark0.9.1集群模式执行graphx測试程序(LiveJournalPageRank,新增Connected Components)
    java 的File文件
    最长公共字序列.cpp
    产品级敏捷开发关键的第一步: 制订版本号公布的节奏
    MySQL优化之——触发器
    Android 打造随意层级树形控件 考验你的数据结构和设计
    【Android】Android聊天机器人实现
    Mysql用户权限管理
    Android经常使用的工具类
  • 原文地址:https://www.cnblogs.com/chaixiaozhi/p/8601628.html
Copyright © 2020-2023  润新知