zoukankan      html  css  js  c++  java
  • 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:模块

  • 相关阅读:
    注解实现SpringCache自定义失效时间(升级版)
    表白小游戏之——制作一个小游戏给喜欢的人(Cocos Creator入门小案例)
    3.python编程与计算机的关系,如何执行python文件
    如何临时发布部署Cocos小游戏到Linux服务器,让别人能在微信打开
    当互联网公司换上东京奥运会图标
    灵魂画手的零基础python教程1:关于Python学习的误区、python的优缺点、前景
    聊一聊关于聊天记录的存储
    【爬虫系列】1. 无事,Python验证码识别入门
    【爬虫系列】0. 无内鬼,破解前端JS参数签名
    JPA
  • 原文地址:https://www.cnblogs.com/ellen-mylife/p/10622746.html
Copyright © 2011-2022 走看看