webpack简单配置

通过exclude排除掉不相关的js文件可以一定程度优化打包过程

配置热更新:devServer:{hot:true}

如果我们要处理jsx语法 则需要在loader中加个预设 preset

以下写法仅适用webpack version4.0以下

同时需要npm i webpack-preset-react -D

在webpack要引入插件 需要使用到require()  但是还是需要先npm i 插件,然后在plugins数组中new出即可

配置sass-loader  需要npm i sass-loader rode-loader

使用模块化之后就可以像引入js一样

上图的localIdentName是指显示在浏览器时的名字

import A from  '..sass' 然后A.xxx

 

------------------------------------------------------------------------------------------

对于webpack 打包压缩vue项目报错:unexpected punc (()的  这说webpack原带的uglifyjs不支持对es6的打包

解决办法是在webpack-prod.config.js中注释掉原来的new webpack.optimize.UglifyJsPlugin({})

然后const UglifyJsPlugin = require('uglifyjs-webpack-plugin');【要提前npm i uglifyjs-webpack-plugin -D】

接着配置new UglifyJsPlugin({
            // 使用外部引入的新版本的js压缩工具
            parallel: true,
            uglifyOptions: {
                ie8: false,
                ecma: 6,
                warnings: false,
                mangle: true,
                // debug false
                output: {
                    comments: false,
                    beautify: false,
                    // debug true
                },
                compress: {
                    // 在UglifyJs删除没有用到的代码时不输出警告
                    warnings: false,
                    // 删除所有的 `console` 语句
                    // 还可以兼容ie浏览器
                    drop_console:true,
                    // 内嵌定义了但是只用到一次的变量
                    collapse_vars:true,
                    // 提取出出现多次但是没有定义成变量去引用的静态值
                    reduce_vars:true,
                }
            }
        }),

如果项目文件大的话 最好不要配置过多的参数。否则打包速度会很慢的

最后在需要npm i webpack-cli 以及babel等需要在webpack.base.config.js中设置相应的loader和options如

{
        test: /\.js$/,
        loader: 'babel-loader',
        include: [resolve('src'), resolve('test')],
        options:{
                presets:["es2015"]
              },
              exclude:[/node_modules/]
      },

优化webpack:可以参考:https://www.jianshu.com/p/7f48a21d8c5e

var UglifyJsPlugin = require('uglifyjs-webpack-plugin');//可以压缩es6代码

var ParallelUglifyPlugin = require('webpack-parallel-uglify-plugin')//多进程执行压缩任务,更快但不支持es6代码的打包

当然我们也可以使用webpack提供的其他优化插件  比如HappyPack

 

出现报错:ERROR in Entry module not found: Error: Cannot resolve 'file' or 'directory'

具体的配置过程可以参考https://www.cnblogs.com/cangqinglang/p/8964460.html 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值