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 相关文章推荐
Javascript与vbscript数据共享
Jan 09 Javascript
JavaScript 动态添加表格行 使用模板、标记
Oct 24 Javascript
location.href 在IE6中不跳转的解决方法与推荐使用代码
Jul 08 Javascript
让页面上两个div中的滚动条(滑块)同步运动示例
Aug 07 Javascript
js 获取浏览器版本以此来调整CSS的样式
Jun 03 Javascript
iframe调用父页面函数示例详解
Jul 17 Javascript
js实现带圆角的两级导航菜单效果代码
Aug 24 Javascript
全面介绍javascript实用技巧及单竖杠
Jul 18 Javascript
jQuery模拟实现天猫购物车动画效果实例代码
May 25 jQuery
浅谈Vue.nextTick 的实现方法
Oct 25 Javascript
Vue 动态添加路由及生成菜单的方法示例
Jun 20 Javascript
vue配置文件实现代理v2版本的方法
Jun 21 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语法(4)
2006/10/09 PHP
php修改指定文件后缀的方法
2014/09/11 PHP
微信公众平台开发实现2048游戏的方法
2015/04/15 PHP
解决php-fpm.service not found问题的办法
2017/06/06 PHP
php求斐波那契数的两种实现方式【递归与递推】
2019/09/09 PHP
使用composer安装使用thinkphp6.0框架问题【视频教程】
2019/10/01 PHP
php下的原生ajax请求用法实例分析
2020/02/28 PHP
Nigma vs Alliance BO5 第五场2.14
2021/03/10 DOTA
form中限制文本字节数js代码
2007/06/10 Javascript
jQuery学习笔记 操作jQuery对象 属性处理
2012/09/19 Javascript
jquery 页眉单行信息滚动显示实现思路及代码
2014/06/26 Javascript
JavaScript+html5 canvas制作的圆中圆效果实例
2016/01/27 Javascript
JavaScript实现点击单元格改变背景色的方法
2016/02/12 Javascript
js实现页面跳转的五种方法推荐
2016/03/10 Javascript
javascript正则表达式之分组概念与用法实例
2016/06/16 Javascript
浅谈js中的in-for循环
2016/06/28 Javascript
微信小程序 天气预报开发实例代码源码
2017/01/20 Javascript
jQuery源码分析之sizzle选择器详解
2017/02/13 Javascript
javascript 面向对象function详解及实例代码
2017/02/28 Javascript
Vue开发中整合axios的文件整理
2017/04/29 Javascript
VUE中v-model和v-for指令详解
2017/06/23 Javascript
jquery插件开发之选项卡制作详解
2017/08/30 jQuery
详解Webstorm 下的Angular2.0开发之路(图文)
2018/12/06 Javascript
JavaScript闭包与作用域链实例分析
2019/01/21 Javascript
[13:18]《一刀刀一天》之DOTA全时刻21:详解TI新赛制 A队再露獠牙
2014/06/24 DOTA
Python脚本实现DNSPod DNS动态解析域名
2015/02/14 Python
详解django.contirb.auth-认证
2018/07/16 Python
浅述python中深浅拷贝原理
2018/09/18 Python
Python实现Singleton模式的方式详解
2019/08/08 Python
解决pycharm下pyuic工具使用的问题
2020/04/08 Python
解决Django Haystack全文检索为空的问题
2020/05/19 Python
python pymysql链接数据库查询结果转为Dataframe实例
2020/06/05 Python
pytorch __init__、forward与__call__的用法小结
2021/02/27 Python
万年牢教学反思
2014/02/15 职场文书
Python干货实战之八音符酱小游戏全过程详解
2021/10/24 Python
Python机器学习应用之基于线性判别模型的分类篇详解
2022/01/18 Python