千锋教育-做有情怀、有良心、有品质的职业教育机构

400-811-9990
手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

上海
  • 北京
  • 郑州
  • 武汉
  • 成都
  • 西安
  • 沈阳
  • 广州
  • 南京
  • 深圳
  • 大连
  • 青岛
  • 杭州
  • 重庆
当前位置:济南千锋IT培训  >  技术干货  >  什么是webpack?

什么是webpack?

来源:千锋教育
发布人:xqq
时间: 2023-10-20 22:17:55

一、webpack的概念

webpack 是代码编译工具,有入口、出口、loader 和插件。webpack 是一个用于现代 JavaScript 应用程序的静态模块打包工具。当 webpack 处理应用程序时,它会在内部构建一个依赖图(dependency graph),此依赖图对应映射到项目所需的每个模块,并生成一个或多个 bundle。

二、webpack的配置项

1、entry (入口)

entry指定了webpack应该使用哪个模块,作为构建起内部依赖图的开始,进入入口起点后,webpack会找出有哪些模块和库是入口起点依赖的,entry配置的默认值是’./src/index.js’,我们可以配置多个入口:

{  entry: {    index: {      import: './src/index.js',      dependOn: 'shared'    },    print: {      import: './src/print.js',      dependOn: 'shared'    },    shared: 'lodash'  }}

在这个配置中用到了import和dependOn两个字段,他们的含义如下:

import:表示启动时需要加载的模块dependOn:当前入口所依赖的入口,它们必须在该入口被加载之前加载 除了这两个属性以外,还支持其他几个配置项filename:指定要输出的文件名称library:为当前entry创建一个libraryruntime:运行时 chunk 的名字。如果设置了,就会创建一个新的运行时 chunk。在 webpack 5.43.0 之后可将其设为 false 以避免一个新的运行时 chunk。

注意点:

runtime和dependOn不应该在同一个入口上同时使用,否则会抛出错误runtime 不能指向已存在的入口名称dependOn 不能是循环引用的

2、output (输出)

output选项用来告知webpack如何向硬盘写入编译文件,output只能指定一个。

{    output: {      filename: '[name].js',      path: path.resolve(__dirname, 'dist'),      clean: true,      publicPath: '/'    } }

clear:true表示每次打包之前会清空之前dist目录下的所有打包文件。

3、loader(加载器)

loader用于对模块的源代码进行转换,可以在加载模块时对文件进行预处理,直接将文件从不同的语言转换为JavaScript或者将内联图形转换为data url。

{  module: {    rules: [      {        test: /\.css/i,        use: [          'style-loader', 'css-loader'        ]      },      {        test: /\.(png|svg|jpg|jpeg|gif$)/i,        type: 'asset/resource'      },      {        test: /\.(woff|woff2|eot|ttf|otf$)/i,        type: 'asset/resource'      },      {        test: /\.(csv|tsv)/,        use: ['csv-loader']      },      {        test: /\.xml$/i,        use: ['xml-loader']      }    ]  }}

示例中的配置添加了对各种类型的静态资源文件的处理loader,可以用来处理 CSS、图片、字体等静态资源。

4、plugin(插件)

插件用于解决loader无法实现的其他事情,它是webpack的支柱功能,在示例中我们使用了HtmlWebpackPlugin这个插件,用于生成和定义入口文件index.html。

  {    plugins: [      new HtmlWebpackPlugin({        title: 'development'      })    ]  }

延伸阅读1:Webpack的工作方式

把项目当做一个整体,通过一个给定的主文件(如:index.js),Webpack将从这个文件开始找到你的项目的所有依赖文件,使用loaders处理它们,最后打包为一个(或多个)浏览器可识别的JavaScript文件。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

程序员都上什么网站?

2023-10-20

#!/usr/bin/env python有什么用?

2023-10-20

HTML、CSS、JavaScript分别实现什么功能?

2023-10-20

最新文章NEW

mysql 不加条件查询速度挺快,加上过滤条件就特别慢是为什么?

2023-10-20

什么是Web前端,有什么好的学习方法?

2023-10-20

哪种工具可以替代PB做数据库开发?

2023-10-20

相关推荐HOT

更多>>

快速通道 更多>>

最新开班信息 更多>>

网友热搜 更多>>