• webpack核心概念


    ### 一、webpack四大核心

    ```
    1.入口(entry)
    2.出口(output)
    3.loader
    4.插件(plugins)
    ```

    ### 二、Entry

    入口起点(entry point)指示 webpack 应该使用哪个模块,来作为构建其内部依赖图的开始。进入入口起点后,webpack 会找出有哪些模块和库是入口起点(直接和间接)依赖的。

    简单理解:
    ```
    1.代码入口
    2.打包入口
    3.单个或多个入口
    4.多个入口:多页面应用程序;或分开的。
    ```


    示例:

    ```js
    // 单个入口文件
    module.exports = {
    entry: 'index.js'
    }

    // 多个入口文件
    module.exports = {
    entry: ['index.js', 'vendor.js']
    }

    // 另外写法,推荐写法,指定键值
    module.exports = {
    entry: {
    index: 'index.js'
    }
    }

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

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

    ### 三、Output

    output 属性告诉 webpack 在哪里输出它所创建的 bundles,以及如何命名这些文件,默认值为 ./dist。基本上,整个应用程序结构,都会被编译到你指定的输出路径的文件夹中。你可以通过在配置中指定一个 output 字段,来配置这些处理过程:

    简单理解:
    ```
    1.打包成的文件(bundle)
    2.一个或多个
    3.自定义规则
    ```


    示例:

    ```js
    // 单个打包输出文件
    module.exports = {
    entry: {
    index: 'index.js'
    },
    output: {
    filename: 'index.min.js'
    },
    }

    // 多个打包输出文件
    module.exports = {
    entry: {
    index: 'index.js',
    vendor: 'vendor.js'
    },
    output: {
    filename: '[name].min.[hash:5].js'
    }
    }
    ```

    ### 四、Loaders

    loader 用于对模块的源代码进行转换。loader 可以使你在 import 或"加载"模块时预处理文件。因此,loader 类似于其他构建工具中“任务(task)”,并提供了处理前端构建步骤的强大方法。loader 可以将文件从不同的语言(如 TypeScript)转换为 JavaScript,或将内联图像转换为 data URL。loader 甚至允许你直接在 JavaScript 模块中 import CSS文件!

    ```js
    1.处理文件
    2.转化为模块
    ```

    示例:

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

    ### 五、Plugins

    插件是 webpack 的支柱功能。webpack 自身也是构建于,你在 webpack 配置中用到的相同的插件系统之上!插件目的在于解决 loader 无法实现的其他事。

    其作用:

    ```
    1.参与打包整个过程
    2.打包优化和压缩
    3.配置编译时的变量
    4.极其灵活的
    ```

    示例:

    ```js
    const webpack = require("webpack");

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

  • 相关阅读:
    ThreadLocal
    spring概述
    排序
    内存的分配原则
    常用概念比较
    垃圾回收机制
    java的内存模型
    对象的内存布局
    adb connect 和 install 通讯流程
    Android硬件抽象层(HAL)深入剖析(三)
  • 原文地址:https://www.cnblogs.com/jinly/p/9487393.html
Copyright © 2020-2023  润新知