基本上每个项目都配置有一个 webpack.config.js ,它的作用如同常规的 gulpfile.js/Gruntfile.js ,就是一个配置项,上一节中提到一段代码
下面来详细介绍一下webpack的四大核心概念
入口entry
entry的字符串或者数组写法
语法:
举个例子,我们需要在webpack.config.js引入一个入口
由于上面是entry 属性的单个入口语法,可以简写为:
但是我们经常遇见将两个不相干的文件打包成一个文件,这样就需要写成数组方式,举个例子:
entry 对象写法
语法:
举个例子,我们需要在webpack.config.js引入多个入口(多页面应用),就需要采用对象的方法
上面需要注意的是entry使用了对象的方式,输出的output需要采用动态命名的方法,这个后面介绍到output会详细说明
打包输出output
需要注意的是output使用的绝对路径,webpack1.0可以不用担心,但是webpack2.0需要对路径引进path进行处理一下
用法
|
|
下面来介绍下output的主要参数
output.filename
指定硬盘每个输出文件的名称。在这里你不能指定为绝对路径!output.path 选项规定了文件被写入硬盘的位置。filename 仅用于命名每个文件。
单个入口你可以写成:
多个入口的话:
你应该使用以下的替换方式来确保每个文件名都不重复。
举个例子:
output.path(必选)
导出目录为绝对路径,需要注意的是output使用的绝对路径,webpack1.0可以不用担心,但是webpack2.0需要对路径引进path进行处理一下
举个例子:
其他参数详见output.options
加载器Loaders
loader 是对应用程序中资源文件进行转换。它们是(运行在 Node.js 中的)函数,可以将资源文件作为参数的来源,然后返回新的资源文件,说成大白话就是将本地文件翻译成浏览器识别的文件。
webpack中有三种方式引用loaders
(1) require方式
举个例子:
上面!是区分多个loaders的标志,?是loaders带的处理参数,类似于web的query。
(2) webpack CLI
也就是直接在gitBash里面执行打包代码的时候直接带上
举个例子:
上面这句话是将.jade后缀的文件用jade-loader处理,将.css后缀的文件用style-loader和css-loader处理。
(3)直接在webpack.config.js配置(这个常用)
举个例子:
上面的意思是将所有以.css后缀结尾的文件用css-loader处理,将所有以.ts后缀结尾的文件用ts-loader处理
如果我们绑定多个loaders,配置如下:
如果给loaders配置参数,配置如下:
插件Plugins
插件是 webpack 的支柱功能。在你使用 webpack 配置时,webpack 自身也构建于同样的插件系统上,插件目的在于解决 loader 无法实现的其他事。
用法:
由于 plugin 可以携带参数/选项,你必须在 wepback 配置中,向 plugins 属性传入 new 实例。
关于plugin的寻找,可以去npm官网上找你需要的插件,上面有配套的参数说明