webpack配置文件和常用配置项介绍


Posted in Javascript onApril 28, 2017

1、安装webpack

1.全局安装webpack:npm install webpack -g 或者转化了cnpm则将npm改为cnpm进行安装

2.进行初始化建立package.json文件记录插件,命令行:npm init

3.webpack安装到项目并将写入package.json的devDependencies中,

命令行:npm install webpack --save-dev。

2、webpack配置文件介绍

1.webpack需要配置文件webpack.config.js,手动的创建于项目根目录中就ok。一个项目可以设置多个配置文件,每个都可以有不同的功能。

2.webpack的配置文件,格式如下:

module.exports = {



//配置开始。主体


}

3.常用配置项简单说明

entry:打包的入口文件,它可以是一个字符串或者一个对象。

output:配置打包的输出结果,为一个对象。

fileName:定义输出文件名,为一个字符串。

path:定义输出文件路径,为一个字符串。

module:定义对模块的处理逻辑,为一个对象。

loaders:定义一系列的加载器,为一个数组。 

 [




{






test:正则表达式,用于匹配到的文件






loader/loaders:字符串或者数组,处理匹配到的文件。






 
           //loader:string:只需要用到一个模块加载器
           //loaders:array:要使用多个模块加载器






include:字符串或者数组,指包含的文件夹






exclude:字符串或者数组,指排除的文件夹





}




]

resolve:影响对模块的解析,为一个对象

extensions:自动补全识别后缀,为一个数组

plugins:定义插件,为一个数组

4.entry的详细说明

1)当entry是一个字符串时,这个字符串表示需要打包的模块的路径,如果只有一个要打包的模块,可以使用这种形式

2)当entry是一个对象

a.是数组时,如果需要将多个模块打包成一个模块,可以使用这个方式。如果这些模块之间不存在依赖,数组中值的顺序没有要求,如果存在依赖,则要将依赖性最高的模块放在最后面。

例如:entry:["./dome/one.js",".dome/two.js"]

b.是键值对形式的对象是,当需要分别打包成多个模块时,可以使用这种方式,例:

entry:{



module1:"./dome/one.js",




module2:["./dome/two.js","./dome/three.js"]


}

注:当entry是一个键值对形式的对象时,包名就是键名,output的filename不能是一个固定的值,因为每个包的名字不能一样

5.output详细说明

1)output是一个对象

2)output.filename:指定输出文件名,一个字符串。当输出一个文件,output.filename为一个确定的字符串

如:

output:{




filename:"build.js"






}

当输出多个文件,output.filename不能为一个确定的字符串。为了让每个文件有一个唯一的名字,需要用到下面的变量

如:

output:{




path:'./build/',





fialname:'[name]_bundle.js'




}

(3)output.path:指定输出文件的路径,相对路径,为一个字符串

6.module.loaders详细说明

1)module是一个对象,定义对模块的处理逻辑

2)module.loaders是一个数组,定义一系列加载器,这个数组中的每一项都是一个对象

3)

module.loaders:[



{





test:正则表达式,用于匹配到的文件





loader/loaders:字符串或者数组,处理匹配到的文件。






 
         //loader:string:只需要用到一个模块加载器
         //loaders:array:要使用多个模块加载器





include:字符串或者数组,指包含的文件夹





exclude:字符串或者数组,指排除的文件夹




}



]

(4)module除了可以配置loaders以外还能配置其他的值.更详细请移步webpack官网

7.resolve.extensions详细说明

1)resolve.extensions并不是必须配置的,当不配置时,会使用默认值["", ".webpack.js", ".web.js", ".js"],当手动为resolve.extensions设置值,它的默认值会被覆盖

2)如果你想要每个模块都能够按照它们自己扩展名正确的被解析,要在数组中添加一个空字符串。

3)如果你想请求一个js文件但是在请求时不带扩展(如:require('somecode')),那么就需要将'.js'添加到数组中。其他文件一样

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
JQuery的ajax获取数据后的处理总结(html,xml,json)
Jul 14 Javascript
获取offsetTop和offsetLeft值的js代码(兼容)
Apr 16 Javascript
js中通过父级进行查找定位元素
Jun 15 Javascript
JS实现一个列表中包含上移下移删除等功能
Sep 24 Javascript
js实现仿百度瀑布流的方法
Feb 05 Javascript
JS实现生成会变大变小的圆环实例
Aug 05 Javascript
基于JavaScript实现Tab选项卡切换效果
Nov 24 Javascript
完美解决浏览器跨域的几种方法(汇总)
May 08 Javascript
JS解惑之Object中的key是有序的么
May 06 Javascript
详解Vue后台管理系统开发日常总结(组件PageHeader)
Nov 01 Javascript
如何使用 JavaScript 操作浏览器历史记录 API
Nov 24 Javascript
vue基于Echarts的拖拽数据可视化功能实现
Dec 04 Vue.js
JS 组件系列之 bootstrap treegrid 组件封装过程
Apr 28 #Javascript
JavaScript实现简单的四则运算计算器完整实例
Apr 28 #Javascript
vue实现动态数据绑定
Apr 28 #Javascript
Vue实现动态响应数据变化
Apr 28 #Javascript
解决浏览器会自动填充密码的问题
Apr 28 #Javascript
JS实现简单的天数计算器完整实例
Apr 28 #Javascript
jQuery实现jQuery-form.js实现异步上传文件
Apr 28 #jQuery
You might like
SONY ICF-SW07收音机电路分析
2021/03/02 无线电
使用Limit参数优化MySQL查询的方法
2008/11/12 PHP
Thinkphp单字母函数使用指南
2016/05/08 PHP
PHP实现超简单的SSL加密解密、验证及签名的方法示例
2017/08/28 PHP
php删除一个路径下的所有文件夹和文件的方法
2018/02/07 PHP
javascript第一课
2007/02/27 Javascript
js判断为空Null与字符串为空简写方法
2014/02/24 Javascript
JavaScript实现跨浏览器的添加及删除事件绑定函数实例
2015/08/04 Javascript
jQuery获取DOM节点实例分析(2种方式)
2015/12/15 Javascript
使用jQuery判断浏览器滚动条位置的方法
2016/05/30 Javascript
js传值后台中文出现乱码的解决方法
2016/06/30 Javascript
JavaScript 数组- Array的方法总结(推荐)
2016/07/21 Javascript
jQuery插件echarts实现的去掉X轴、Y轴和网格线效果示例【附demo源码下载】
2017/03/04 Javascript
layui 给数据表格加序号的方法
2018/08/20 Javascript
微信小程序地图导航功能实现完整源代码附效果图(推荐)
2019/04/28 Javascript
微信小程序的tab选项卡的实现效果
2019/05/15 Javascript
javascript系统时间设置操作示例
2019/06/17 Javascript
详解基于 Node.js 的轻量级云函数功能实现
2019/07/08 Javascript
微信小程序进入广告实现代码实例
2019/09/19 Javascript
ES6扩展运算符和rest运算符用法实例分析
2020/05/23 Javascript
Vue 集成 PDF.js 实现 PDF 预览和添加水印的步骤
2021/01/22 Vue.js
python 数据加密代码
2008/12/24 Python
10款最好的Web开发的 Python 框架
2015/03/18 Python
python版学生管理系统
2018/01/10 Python
python 顺时针打印矩阵的超简洁代码
2018/11/14 Python
Python下opencv图像阈值处理的使用笔记
2019/08/04 Python
在tensorflow中实现屏蔽输出的log信息
2020/02/04 Python
Python tkinter 下拉日历控件代码
2020/03/04 Python
python与idea的集成的实现
2020/11/20 Python
英国领先的杂志订阅网站:Magazine.co.uk
2018/01/25 全球购物
瑞士图书网站:Weltbild.ch
2019/09/17 全球购物
财务出纳岗位职责
2014/02/03 职场文书
微笑面对生活演讲稿
2014/09/23 职场文书
2016年重阳节慰问信
2015/12/01 职场文书
Python图片验证码降噪和8邻域降噪
2021/08/30 Python
MYSQL如何查看操作日志详解
2022/05/30 MySQL