其他分享
首页 > 其他分享> > Webpack核心概念

Webpack核心概念

作者:互联网

文章目录

核心概念

本文主要学习webpack入门的一些核心概念,包括webpack.config.js的entry,output,loaders,plugins,mode等,下面我们一个个来介绍

entry

entry是用来指定webpack的打包入口,Entry 属性指示 webpack 应该使用哪个模块,来作为构建其内部依赖图的开始。进入入口起点后,webpack 会找出有哪些模块和库是入口起点(直接和间接)依赖的。入口文件可以有多个。根据项目特点,可以以多种方式来配置 Entry。

webpack基本示意图

如图,我们只需要配置最开始的.js文件,后续webpack会将一切的资源,不管是js资源还是非代码的css,png,字体等等各种资源,当做不同的模块加入到左侧的依赖树(图左侧),所有资源遍历完成以后最终打包完成。

entry的两种用法

output

Output是用来告诉webpack如何将编译后的文件输出到磁盘

output两种用法

module.exports = {
    entry: './src/index.js',                //打包入口文件(如果是单个入口就是字符串,如果是多个入口就需要配置成对象)
    output: {                               //打包输出文件
        path: path.join(__dirname, 'dist'),
        filename: "bundle.js"
    },
}
module.exports = {
    entry: {
        app: './src/index.js',
        search: './src/search.js'
    },                //打包入口文件(如果是单个入口就是字符串,如果是多个入口就需要配置成对象)
    output: {                               //打包输出文件
        path: __dirname+'/dist',
        filename: '[name].js'  //通过占位符确保文件名的唯一性
    }
}

loaders

webpack默认配置下是支持支js和json两种文件类型(CSS,LESS都不支持),通过Loaders去支持其它文件类型,并且将他们转化成有效的模块,再添加到依赖树中。

本身是一个函数,接受源文件作为参数,并返回转换后的结果。

用法

module.exports = {
	......
  module: {
        rules: [{                  //Loader配置,test:指定匹配规则,use 指定使用loader的名称
            test: /\.test$/, use: 'raw-loader'
        }]
    },
    plugins: [new HtmlWebpackPlugin()]
}

目前常见的Loaders

plugins

plugin 用于bundle文件优化,资源管理和环境变量的注入,作用于整个构建过程,用来增强webpack的功能,可以理解为任何Loaders没办法完成的事情可以通过plugin来完成。

常用的Plugins

mode

Mode是用来指定当前的构建环境是:production,development,还是none

设置node可以使用webpack内置的函数,默认值未production.

标签:文件,核心,webpack,入口,js,概念,Webpack,loader,打包
来源: https://blog.csdn.net/huangbiao86/article/details/123087268