• webpack(2) 概念


    本文来源于webpack官方文档的翻译

    概念

    webpack是一个模块化打包工具。当webpack处理应用程序的时候,在它内部构建了一个包含各个模块的依赖图,然后产生一个或者多个打包压缩后的文件。

    从webpack4.0以后,webpack.config.js是可选项.但是还是推荐在打包的时候使用它。

    webpack的核心概念I:

    • Entry(入口):要打包的文件

    • OutPut(输出):文件打包后的输出目录

    • Loaders(加载器):对不同类型的文档如何处理

    • Plugins(插件):执行广泛的任务,如优化,资源管理,注入环境变量等

    • Mode(模式):production,development

    • Browser Compatibility(浏览器兼容性):指定浏览器的兼容性

    Entry(入口):

    入口定义了哪些模块要被打包进依赖图。webpack将会指出这些模块的依赖项。默认值是./src/index.js。但是可以自定义设置。

    例如:

    人口的设置语法:

    单文件:entry: string | [string]

     对象式:entry:object{}

    module.exports={
    
      entry:{
    
        a:a.js,
        b:b.js
      }
    
    }

    Output(输出):

    输出属性定义了webpack打包后的文件,叫什么名字,输出后的地址是哪里。多个entry,可以只有一个输出文件

    语法格式:output:{filename:bundle-name}

    例如:

    module.exports={
          entry:"app.js",
          output:{
             filename:app-bundle.js
         }      
              
    }

    当遇到多个输入,需要多个文件输出是可以使用"[name]"作为占位符,这样生成的输出就有多个。

    module.exports={
          entry:{  
            a:a.js
            b:b.js,
            c:c.js
        },
        output:{
             filename:'[name]-bundle.js',
             path:__dirname_+'/dist'
        }
    }
    

    Loaders(加载器):

    webpack只是识别js,json文件,loaders能使得webpack处理其他类型的文件,然后打包进入依赖图。

    loaders有两个属性:

    test:指定文件名。

    use:指定文件的转换程序。

    实例如下:

    加载器是应用在要转换模块的源码上的,允许webpack预处理那些import和load的模块。加载器能转换各种类型的文件。

    如果想加载css文件或者转换ts为js,就需要安装加载器:

    npm install --save-dev css-loader ts-loader

    相应的添加loader的rules属性。

    1 module.exports={
    2   module:{
    3     rules:[
    4     {test:/.css$/,use:"css-loader"},
    5     {test:/.ts$/,use:"ts-loader"}
    6   ]
    7  }
    8 }

     Plugins(插件):

    loader能用来转换文件,但插件能执行更多的任务,如打包优化,资源管理,注入环境变量等。

    为了使用插件,需要是用require()先引入插件,把它加入到插件属性中,大多数插件都可以通过选项定义属性。一个插件在一个配置文件里可以为了不同的目的使用多次,你需要通过new来创建它的实例。

    插件是webpack的骨架,webpack本身是基于当前配置文件的同一个插件系统的。

    插件首先需要通过npm安装,安装完成以后通过require引入,然后通过new实例化,实例化的过程中需要指定一些选项

    HtmlWebpackPlugin处理html的。

    首先安装

     npm i --save-dev html-webpack-plugin

    通过require引入webpack

    const HtmlWebpackPlugin = require('html-webpack-plugin'); //installed via npm

    实例化插件

     plugins: [
        new HtmlWebpackPlugin({template: './src/index.html'})
      ]
    

    这样插件就能在webpack打包是发挥其作用了

    Mode(模式):

    mode的值可以是:production,development,none.设置webpack的不同模式选项,可以执行webpack的内部优化选项。默认值是production

    Browser Compatibility(浏览器兼容性):

    webpack支持全部的es5语法,能支持ie8以上的浏览器,如果需要支持更老的浏览器需要使用 load a polyfill 

  • 相关阅读:
    Android Studio开发JNIproject
    POJ 3006 Dirichlet's Theorem on Arithmetic Progressions 快筛质数
    ZooKeeper是什么?
    android学习记录(十三)Task 和 Activity 回退栈操作。
    Java程序员的日常—— IOUtils总结
    sql基础知识:分页+排序
    Elasticsearch推荐插件篇(head,sense,marvel)
    sql基础知识:日期的常用用法
    [大数据之Spark]——Actions算子操作入门实例
    [大数据之Spark]——Transformations转换入门经典实例
  • 原文地址:https://www.cnblogs.com/whyd/p/11765333.html
Copyright © 2020-2023  润新知