美文网首页
webpack简介及常用配置

webpack简介及常用配置

作者: wylb868 | 来源:发表于2021-01-26 14:45 被阅读0次

webpack

webpack 是一个用于现代 JavaScript 应用程序的静态模块打包工具。当 webpack 处理应用程序时,它会在内部构建一个依赖图(dependency graph),此依赖图对应映射到项目所需的每个模块,并生成一个或多个 bundle。

可以把es6模块化编译为浏览器可识别的模块化
能够处理js,json资源,但是不能处理css,html,img等资源

loader

loader 用于对模块的源代码进行转换,提供webpack不支持的模块的处理方式

webpack自身能够处理js,json资源,但是不能处理css,img等资源,我们可以在loader中配置怎样处理css等资源。
如:css,sass,img,typescript等

在使用前利用提供的规则先解析在使用,解析时从下到上,从右到左

plugins

有些比较负责的内容,使用loader还是无法处理,所以需要在plugins配置,如:html等

常用配置

//webpack.conf.js常用配置模板
const {resolve} = require(path)     //node.js中模块,用来拼接绝对路径的方法

module.export = {
    entry: './index.js',       //入口文件
    output: {
        filename: 'build.js',     //输出文件名
        path: resolve(__dirname, 'build')  //输出路径(必须是绝对路径,__dirname是node.js的变量名,代表当前文件的绝对路径)
    },
    module: {
        rules: [            //loader、解析器等选项的配置(使用时需1.下载 2.配置)
            {   //处理css
                test: /\.less$/,
                use: ['style-loader', 'css-loader', 'less-loader']    //使用多个loader用use
            },
            {   //处理图片
                test: /\.(jpg|png|gif)$/,
                loader: 'url-loader',  //使用一个loader  file-loader也可加载图片,但不优化
                options:{
                    //图片大小小于8kb就会使用base64处理
                    //优点:减少http请求(减少服务器压力)
                    //缺点:图片体积会更大(加载慢)
                    limit: 8*1024,
                    //因为url-loader默认使用es6模块化解析,而html-loader引入图片是commonJs方式,解析时会出问题【object module】
                    //所以关闭es6模块化,使用commonjs解析
                    esModule: false,
                    name: '[hash:10].[ext]' //文件重命名 取hash的前10位
                }
            },
            {   //处理字体
                test: /\.(woff|woff2|eot|ttf|otf)$/,
                use: [
                  'file-loader'
                ]
            },
            {
                test: /\.html$/,
                loader: 'html-loader',  //处理html文件的img图片(负责引入img,使其能被url-loader处理)
            }
        ]
    },
    plugins: {              //插件的配置(使用时需1.下载 2.引用 3.配置)
        //html-webpack-plugins  
        //功能:默认会创建一个空的html,自动引入打包输出的所有资源js、css
        //需求:需要一个有结构的html文件
        new HtmlWebpackPlugins({
            template: './index.html'  //自动复制该html的内容,并引入打包好的js、css(WebpackManifestPlugin 可以追踪所有的输出映射,过程)
        })
    },
    mode: 'development',      //开发模式配置("production" | "development" | "none"),生产环境会增加压缩和优化
    devtool: 'inline-source-map',  //开发环境使用(帮助调试,可显示错误的文件和行数)
    devServer: {        //开发服务器配置,可用来自动化:自动编译,自动打开浏览器,自动刷新浏览器等等(只会在内存中编译,不会有任何输,出启动指令  webpack-dev-server)
        contentBase: resolve(__dirname,'build'),    //编译缓存在哪个文件
        compress: true,     //启动gzip压缩
        port:8080,          //端口号
        open: true,         //自动打开浏览器
        proxy: {
          '/bx':{           //代理前缀
              target: '代理地址',
              changeOrigin:true,    //表示是否跨域,
              pathRewrite:{           //表示需要rewrite重写的
                '^/bx': ''
              }
          }
        }
    }
}

相关文章

  • webpack简介及常用配置

    webpack webpack 是一个用于现代 JavaScript 应用程序的静态模块打包工具。当 webpac...

  • webpack进阶——缓存与独立打包

    系列:webpack入门——了解及使用webpack基础——常用配置解析 先来看看最基础的webpack配置: 在...

  • webpack 常用配置及插件

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

  • webpack常用配置及用法

    创建局部的webpack 创建package.json文件,用于管理项目的信息、库依赖等npm initn 第三步...

  • readis数据结构服务器

    本章节阅读索引: 一:redis简介 二:安装及主要配置文件简介 三:Redis常用命令及数据库操作命令简介 四:...

  • 初识webpack4.x(一)

    系列文章 初识webpack(一) 初识webpack(二)之常用插件配置 初始webpack(三)之环境分离终结...

  • Webpack 2.0 学习过程资料整理

    Webpack学习过程及项目使用问题及资料整理 -- 2017.11.02 Webpack的简介及使用教程 Web...

  • webpack插件配置及常用插件

    config配置类: 1.provide Plugin 用途:$出现就会自动加载模块;$默认为jquery的exp...

  • webpack 配置简介

    webpack 为何会出现 随着 web 技术的发展,越来越多的网站一改传统的网页形式,进化成了 webapp ...

  • webpack配置简介

    今天从以下8个方面进行讲解webpack: entry output split module resolve d...

网友评论

      本文标题:webpack简介及常用配置

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