美文网首页
webpack2 配置分享

webpack2 配置分享

作者: anshi | 来源:发表于2017-06-21 09:55 被阅读0次

任务型学习..

活动页配置

先放一份配置(适合简单的活动页)
...可以使用ES6,使用模块,使用sass,还有postcss后处理工具(这个选择了另外做配置postcss.config.js),另外添加了两个模块,一个负责压缩,一个负责另外生成html文件,更新对应的版本号。
@Q:最开始选择hash值添加在js或者css后,后来发现每次更新,都是另外生成两个js/CSS文件..因为不重名,不是被替换...后来想着自己加hash只是为了清除缓存,就选择直接在html加版本号了。
@Q:遗留的问题是还不会处理生成的html内对js和css的路径处理。

let path = require('path');
const ExtractTextPlugin = require("extract-text-webpack-plugin");
const UglifyJSPlugin = require('uglifyjs-webpack-plugin');
const HtmlPlugin = require('html-webpack-plugin');

module.exports = {
    entry: path.resolve(__dirname, 'src/index.js'), //这里是绝对路径
    output: {
        path: path.resolve(__dirname, 'build/'),
        filename: '28newer.js',
    },
    devtool: 'source-map', //添加map,便于debug
    module: {
        rules: [
            {
                test: /\.scss$/,
                use: ExtractTextPlugin.extract({
                    fallback: "style-loader",
                    use: [{
                        loader: "css-loader" // add ?minimize could minify translates CSS into CommonJS
                    }, {
                        loader: "postcss-loader"
                    },
                        {
                            loader: "sass-loader" // compiles Sass to CSS
                        }]
                })
            }, {
                test: /\.js$/,
                exclude: /node_modules/,
                loader: "babel-loader"
            }
        ]
    },
    plugins: [
        new HtmlPlugin({
            template: 'test.html', //模板选择,支持ejs等,具体配置看文档
            filename: 'index.html', //不是写生成路径,是写名字
            title: 'exam', //生成的html文档
            hash: true // 是否为html包含的script和css添加hash值
        }),
        new ExtractTextPlugin("28newer.css") ,//这里负责另外生成css,而不内嵌
        new UglifyJSPlugin({ //这里是负责压缩的
            // 最紧凑的输出
            beautify: false,
            // 删除所有的注释
            comments: false,
            compress: {
                // 在UglifyJs删除没有用到的代码时不输出警告
                warnings: false,
                // 删除所有的 `console` 语句
                // 还可以兼容ie浏览器
                drop_console: true,
                // 内嵌定义了但是只用到一次的变量
                collapse_vars: true,
                // 提取出出现多次但是没有定义成变量去引用的静态值
                reduce_vars: true,
            }
        })
    ]
};

考虑重复模块处理配置

待续...

相关文章

  • webpack2 配置分享

    任务型学习.. 活动页配置 先放一份配置(适合简单的活动页)...可以使用ES6,使用模块,使用sass,还有po...

  • 详解 Webpack2 的那些路径

    Webpack2 中有很多涉及路径参数配置,若不知其所以然,很容易混淆出错。本文尽可能的汇集了 Webpack2 ...

  • webpack2配置

    使用vue做一个简单的SPA应用,配置webpack 安装Node.js webpack是基于Node.js的打包...

  • webpack 常用配置及插件

    本文记录webpack2中的常用配置项和插件 1、常用配置 1.1 entry 单入口时key为app,value...

  • webpack2快速入门的几个实例

    本文是在请练完这16个webpack小例子基础上补充的webpack2的版本 安装 配置 配置文件为 webpac...

  • webpack2教程续之DllPlugin

    本文承接webpack2教程、webpack2教程续之自动编译以及webpack2教程续之eslint检测,本文所...

  • webpack2教程续之eslint检测

    本文承接webpack2教程以及webpack2教程续之自动编译,本文所说的项目目录依旧是webpack2 在上两...

  • webpack1/2/3区别

    一、 Webpack2 VS Webpack1新增了许多新特性,需要处理配置语法兼容 增加对 ES6 模块的原生支...

  • 从vue-cli学webpack配置2--针对webpack3

    上一篇:从vue-cli学webpack配置--针对webpack2现在大家用vue-cli工具新建的webpac...

  • Webpack2配置属性详解

    webpack说明 webpack是前端构建的一个核心所在,如果说后端构建就是把高级语言代码编译成机器码,那么前端...

网友评论

      本文标题:webpack2 配置分享

      本文链接:https://www.haomeiwen.com/subject/hddoqxtx.html