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 相关文章推荐
善用事件代理,警惕闭包的性能陷阱。
Jan 20 Javascript
JavaScript中的作用域链和闭包
Jun 30 Javascript
js中Image对象以及对其预加载处理示例
Nov 20 Javascript
JavaScript中split() 使用方法汇总
Apr 17 Javascript
jquery+CSS实现的水平布局多级网页菜单效果
Aug 24 Javascript
jquery层级选择器(匹配父元素下的子元素实现代码)
Sep 05 Javascript
xcode中获取js文件的路径方法(推荐)
Nov 05 Javascript
BootStrap TreeView使用实例详解
Nov 01 Javascript
JS回调函数原理与用法详解【附PHP回调函数】
Jul 20 Javascript
vue 验证码界面实现点击后标灰并设置div按钮不可点击状态
Oct 28 Javascript
JS实现音量控制拖动
Jan 15 Javascript
JS简易计算器实例讲解
Jun 30 Javascript
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
PHP中Date获取时间不正确怎么办
2008/06/05 PHP
用PHP实现递归循环每一个目录
2010/08/08 PHP
在js中使用"with"语句中跨frame的变量引用问题
2007/03/08 Javascript
ArrayList类(增强版)
2007/04/04 Javascript
jQuery Deferred和Promise创建响应式应用程序详细介绍
2013/03/05 Javascript
JS注释所产生的bug 即使注释也会执行
2013/11/19 Javascript
js调用打印机打印网页字体总是缩小一号的解决方法
2014/01/24 Javascript
常用的JavaScript模板引擎介绍
2015/02/28 Javascript
js图片卷帘门导航菜单特效代码分享
2015/09/10 Javascript
jQuery层次选择器用法示例
2016/09/09 Javascript
整理一下常见的IE错误
2016/11/18 Javascript
DWR3 访问WEB元素的两种方法实例详解
2017/01/03 Javascript
bootstrap按钮插件(Button)使用方法解析
2017/01/13 Javascript
JS获取鼠标位置距浏览器窗口距离的方法示例
2017/04/11 Javascript
vuejs使用递归组件实现树形目录的方法
2017/09/30 Javascript
vue 使用Jade模板写html,stylus写css的方法
2018/02/23 Javascript
vue基于viewer实现的图片查看器功能
2019/04/12 Javascript
使用Vue-Awesome-Swiper实现旋转叠加轮播效果&平移轮播效果
2019/08/16 Javascript
解决在Vue中使用axios用form表单出现的问题
2019/10/30 Javascript
使用python实现knn算法
2017/12/20 Python
Pytorch中Tensor与各种图像格式的相互转化详解
2019/12/26 Python
Pycharm 安装 idea VIM插件的图文教程详解
2020/02/21 Python
python实现全排列代码(回溯、深度优先搜索)
2020/02/26 Python
python中def是做什么的
2020/06/10 Python
Django实现文章详情页面跳转代码实例
2020/09/16 Python
python 合并多个excel中同名的sheet
2021/01/22 Python
HTML5的结构和语义(3):语义性的块级元素
2008/10/17 HTML / CSS
亚洲最大的眼镜批发商和零售商之一:Glasseslit
2018/10/08 全球购物
美国渔具店:FishUSA
2019/08/07 全球购物
Love, Bonito国际官网:新加坡女装品牌
2021/03/13 全球购物
简述synchronized和java.util.concurrent.locks.Lock的异同
2014/12/08 面试题
linux系统都有哪些运行级别
2016/03/26 面试题
自学考试自我鉴定范文
2013/09/26 职场文书
医学生自荐信
2013/12/03 职场文书
基石观后感
2015/06/12 职场文书
vite+vue3.0+ts+element-plus快速搭建项目的实现
2021/06/24 Vue.js