• webpack——entry,output,plugins,loader,chunk知识


    entry:打包入口

    代码的入口,找到依赖模块

    打包的入口,webpack去哪个文件找依赖,或是去那个文件依赖的依赖

    可以是一个或者多个入口

    例如:

    1.module.exports={
    entry:'index.js'
    }

    这个module.exports对象是webpack的配置,配置有一个属性就是entry,entry属性的值就是一个文件名index.js,也可以加一个路径,只要可以找到文件

    2.module.exports={
    entry:['index.js','vendor.js']
    }

    这里entry属性的值就是一个数组,这就是根据一个文件创建多个入口

    3.module.exports={
    entry:{

      index:'index.js',

      vendor:'vendor.js'

    }
    }

    这里entry属性的值就是一个对象,这个方式相较于前两个的不同是,这里可以知道文件叫什么,可以有一个key,如果想要继续添加一个入口可以继续增加key,扩展性较好

    output:输出

    打包成文件,对打包文件进行描述

    可以是一个或者多个

    自定义规则

    配合CDN

    例如:

    1.

    module.exports={
    entry:'index.js',
    output:{
    filename:'index.min.js'
    }
    }

    单个输入配单个输出,filename就是输出文件名

    2.

    module.exports={
    entry:{
    index:'index.js',
    vendor:'vendor.js'
    },
    output:{
    filename:'[name].min.[hash:5].js'
    }
    }

    [name].min.[hash:5].js这就是自定义规则了,name表示entry的name,如果entry的name是index,[name]就是index,[hash:5]是webpack打包过程中的独一无二的标识码

    loaders:出来js之外的东西

    处理文件

    转化为模块:把文件转化为js可以认识模块

    例如:

    module.exports={
    module:{
    rules:[
    {
    test:/.css$/,
    user:'css-loader'
    }
    ]
    }
    }

    可以看到这里有一个对module.exports等于一个对象,然后对module的一个定义,一个rules数组,数组是对不同文件的定义,test:/.css$/,是对后缀为.css的文件的定义,user是使用css-loader文件

    常用loader:

    编译相关:babel-loader、ts-loader

    样式相关:

    style-loader、css-loader、less-loader、postcss-loader

    文件相关:

    file-loader、url-loader

    plugins:其他功能插件

    参与打包整个过程

    打包优化和压缩

    配置编译时的变量

    极其灵活

    例如

    const webpack=require('webpack');

    module.exports={
    plugins:[
    new webpack.optimize.UglifyJsPlugin()
    ]
    }

    plugins下的数组是对plugins的使用

    常用plugins

    优化相关:CommonsChunkPlugin  UglifyjsWebpackPlugin

    功能相关:ExtractTextWebpackPlugin  HtmlWebpackPlugin HotModuleReplacementPlugin  CopyWebpackPlugin

    Chunk:代码块

    bundle:已经被打包过后的

    Module:模块

  • 相关阅读:
    spark on yarn模式下内存资源管理(笔记1)
    面试题10.3-变态跳台阶
    面试题10.2-青蛙跳
    面试题9-斐波那契数列
    面试题9-用两个栈来实现一个队列,完成队列的Push和Pop操作
    面试题6:输入一个链表,按链表值从尾到头的顺序返回一个ArrayList
    鸢尾花数据集-iris.data
    class之cls
    python 装饰器
    supervisor python开发的进程管理工具
  • 原文地址:https://www.cnblogs.com/ellen-mylife/p/10622746.html
Copyright © 2020-2023  润新知