美文网首页
webpack4学习笔记2

webpack4学习笔记2

作者: fuheideMayuyu | 来源:发表于2019-03-03 19:26 被阅读0次

    webpack编译es6 es7

    npm install -D babel-loader @babel/core @babel/preset-env    // webpack 4.x | babel-loader 8.x | babel 7.x
    

    rules配置:

            {
              test:/\.js$/,
              use:{
                loader:'babel-loader',
                options:{
                    presets:[
                        ['@babel/preset-env',
                        {
                           targets:{
    
                              browsers:['> 1%','last 2 versions']
                              //chrome:'52'
                              //设置浏览器支持
                           }    
                        }]
                    ]
                }
              },
              exclude:'/node_modules/'
              //不编译的文件夹,为了提高编译效率
            }
    

    更多的需求和功能还在摸索当中,关于es6的编译也可以直接在src在新建.babelrc文件进行配置。

    调试配置

        devtool: 'source-map', // 单独文件,可以定位哪一列出错
        devtool: 'cheap-module-source-map', // 单独文件,体积更小,但只能定位到哪一行出错
        devtool: 'eval-source-map', // 不会生成单独文件
        devtool: 'cheap-module-eval-source-map', // 不会生成单独文件,只能定位到行,体积更小
    

    webpack源文件修改后webpack重新打包

        watch: true,
        watchOptions:{
          ignored: /node_modules/, // 不监听这个文件
          poll: 1000, //每秒询问次数
          aggregateTimeout: 500, // 文件修改之后500毫秒再编译
        },
    

    将根目录的public 文件夹下的文件拷贝的dist目录下

    npm i copy-webpack-plugin -D
    
    const CopyWebpackPlugin = require("copy-webpack-plugin"); // 引入这个插件
    

    plugin配置

          new CopyWebpackPlugin([{
            from: path.join(__dirname,'public'), // 目标文件
            to: path.join(__dirname,'dist/public'), // 输出目录
          }])
    

    css压缩

    安装这个插件

     npm install optimize-css-assets-webpack-plugin --save-dev
    

    在配置文件中引入这个插件

    const optimizeCss = require('optimize-css-assets-webpack-plugin');
    

    plugin配置

    new optimizeCss()
    

    压缩js

    $ npm install uglifyjs-webpack-plugin --save-dev
    
    const UglifyJsPlugin = require('uglifyjs-webpack-plugin');
    
    new UglifyJsPlugin()
    

    路径别名配置

        resolve:{
          extensions: ['.wasm', '.mjs', '.js', '.json'], //引入模块时可以不加扩展名
          alias:{
            '@': path.resolve('src'),
            'test1':path.resolve('src/page/pageView/test.js'),
          }
        },
    

    去除多余的css

    npm install purifycss-webpack purify-css glob -D
    
    const PurifycssWebpack = require("purifycss-webpack");
    const glob = require("glob");
    
          new PurifycssWebpack({
            //*.html 表示 src 文件夹下的所有 html 文件,还可以清除其它文件 *.js、*.php···
            //注意这里是 paths !!!笔者已经写错好多次少了个s了!!!
            paths: glob.sync(path.resolve("./src/*.html"))
          }),
    

    相关文章

      网友评论

          本文标题:webpack4学习笔记2

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