webpack 配置二

模式:

webpack4中可以直接指定模式,以现实不同环境对打包代码做不同的处理,2而webpack2,3中是通过插件进行代码压缩以及改变环境变量的

module.exports = {
  mode: ‘development‘,
};
//相当于
module.exports = {
   devtool:‘eval‘,
   plugins: [
      new webpack.NamedModulesPlugin(),
      new webpack.DefinePlugin({ 
        "process.env.NODE_ENV": JSON.stringify("development") 
      })
   ]
}

 开启开发模式对开发友好,不会对代码进行压缩

module.exports = {
  mode: ‘production‘,
};
//相当于
module.exports = {
   plugins: [
      new UglifyJsPlugin(/*...*/),
      new webpack.DefinePlugin({ //改变环境变量
        "process.env.NODE_ENV": JSON.stringify("production") 
      }),
      new webpack.optimize.ModuleConcatenationPlugin(),//预编译所有模块到一个闭包中,提升你的代码在浏览器中的执行速度。
      new webpack.NoEmitOnErrorsPlugin()//在编译出现错误时,使用 NoEmitOnErrorsPlugin 来跳过输出阶段。这样可以确保输出资源不会包含错误。
   ]
}

 生产模式不用对开发友好,只需要关注打包的性能和生成更小体积的bundle

loader:

 loader用于对模块module的源码进行转换,默认webpack只能识别commonjs代码,但是我们在代码中会引入比如vue、ts、less等文件,webpack就处理不过来了;loader拓展了webpack处理多种文件类型的能力,将这些文件转换成浏览器能够渲染的js、css。

css-loader和style-loader:

css-loader和style-loader从名称看起来功能很相似,然而两者的功能有着很大的区别,但是他们经常会成对使用;安装方法:

npm i -D css-loader style-loader

 css-loader 解释(interpret) @import 和 url() ,会 import/require() 后再解析(resolve)它们。

css-loader解析css文件以字符串的形式,变成common.js插入到js文件中

style-loader用来将css-loader生成的样式表通过<style>标签,插入到页面header中去。

sass-loader和less-loader:

用来处理sass和less样式的。安装方法:

npm i -D sass-loader less-loader node-sass

 配置:

{
    //其他配置
    rules: {
        test: /\.scss$/,
        use: [{
            loader: ‘style-loader‘
        }, {
            loader: ‘css-loader‘
        },{
            loader: ‘sass-loader‘
        }]
    },{
        test: /\.less$/,
        use: [{
            loader: ‘style-loader‘
        }, {
            loader: ‘css-loader‘
        },{
            loader: ‘less-loader‘
        }]
    }
}

  

webpack 配置二

上一篇:CSS基础(2)


下一篇:JS 深拷贝与浅拷贝