Webpack2配置属性详解

webpack说明

webpack是前端构建的一个核心所在,如果说后端构建就是把高级语言代码编译成机器码,那么前端的构建就是重新组合原有的代码,虽然并不编译成机器码,但实际上,因为前端长期使用简单的脚本开发,HTML,CSS,JS互相分离,难以形成类似工程化的“凝聚力”。

所以伴随着大量的模块化标准的建立,“组件化”前端的概念也逐渐确立,前端开始着重以功能模块为划分,而不是和以前一般以代码种类为划分。

webpack是很好的构建解决方案,简单地说,它通过人为设定的配置,按照需求将前端的各种代码按照指定的方式组合,整理成浏览器可执行的正常代码。这里的各种代码包括但不限于JS,可以是HTML,CSS等任何代码。

webpack基础构建流程

1、从context对应的文件夹开始…

2、寻找entry里所有的文件名…

3、然后读取它们的内容。在解析代码时,每一个通过import(ES6) 或require()(Node) 引入的依赖都会被打包到最终的构建结果当中。它会接着搜索那些依赖,以及那些依赖的依赖,直到“依赖树”的叶子节点 — 只打包它所需要的依赖,没有其他的东西。

4、Webpack 将所有东西打包到output.path对应的文件夹里,使用output.filename对应的命名模板来命名([name]被entry里的对象键值所替代)

webpack属性

webpack包括许多属性,可以灵活定制打包编译过程。这篇文章,就着重地介绍webpack的配置,因为这是它的灵魂所在

context   基础目录,绝对路径,用于从配置中解析入口起点(entry point)和加载器(loader)      注:默认使用当前文件路径

entry

入口文件的属性,整个项目的主入口,其余依赖的模块均在这些文件中引入

output    出口文件的属性,整个项目的唯一出口,虽然可以有多个入口,但是只有一个出口

module

不同资源的加载器,默认webpack只支持JS,但是引入不同的loader,就可以加载更多类型的资源文件,例如HTML,CSS,JPG等等。通过module属性配置需要匹配的文件资源和对应的加载器。需要注意的是,加载器需要提前通过npm安装。

resolve   重定义如何处理模块资源,例如设置模块的别名,设置是否允许无后缀名等

plugins   插件可以实现对各种资源文件的定制处理,例如压缩,混淆,转换,分割等等

devServer  配置开发服务器,这是一个小型的Node Express服务器,可以为打包后的静态资源提供访问服务

devtool   要在webpack打包的同时生成source maps,需得在webpack.config.js中配置devtool配置项

target

webpack可以为js的各种不同的宿主环境提供编译功能,为了能正确的进行编译,就需要开发人员在配置里面正确的进行配置

默认情况下,target的值是web,也就是为类浏览器的环境提供编译

watch and watchOptions    webpack 可以监听文件变化,当它们修改后会重新编译

externals  webpack中的externals配置提供了"不从 bundle 中引用依赖"的方式。例如,从 CDN引入jQuery,而不是把它打包

node   自定义 NodeJS 环境

performance  这些选项可以控制 webpack 如何通知"资源(asset)和入口起点超过指定文件限制",就是当构建大资源文件时可以给出警告提示

stats   这些选项能让你准确地控制显示哪些包的信息

webpack2的配置属性说明entry,output,state,plugins,node,module,context的更多相关文章

  1. 详解webpack-dev-server的配置属性

    1.devServer.contentBase   它指定了服务器资源的根目录,如果不写入contentBase的值,那么contentBase默认是项目的目录. 在上面例子中产生错误和后来解决错误的 ...

  2. 【配置属性】—Entity Framework 对应表字段的类型的设定配置方法

    摘自:http://www.cnblogs.com/nianming/archive/2012/11/07/2757997.html Entity Framework Code First的默认行为是 ...

  3. hadoop之 hadoop 2.2.X 弃用的配置属性名称及其替换名称对照表

    Deprecated Properties  弃用属性 The following table lists the configuration property names that are depr ...

  4. 【配置属性】—Entity Framework实例详解

    Entity Framework Code First的默认行为是使用一系列约定将POCO类映射到表.然而,有时候,不能也不想遵循这些约定,那就需要重写它们.重写默认约定有两种方式:Data Anno ...

  5. 外部配置属性值是如何被绑定到XxxProperties类属性上的?--SpringBoot源码(五)

    注:该源码分析对应SpringBoot版本为2.1.0.RELEASE 1 前言 本篇接 SpringBoot是如何实现自动配置的?--SpringBoot源码(四) 温故而知新,我们来简单回顾一下上 ...

  6. 关于mvc5+EF里面的db.Entry(model).State = EntityState.Modified报错问题

    最近在使用mvc5+EF的的时候用到了这句话 db.Entry(model).State = EntityState.Modified 看上去很简单的修改数据,但是一直报错,说是key已经存在,不能修 ...

  7. spring配置属性的两种方式

    spring配置属性有两种方式,第一种方式通过context命名空间中的property-placeholder标签 <context:property-placeholder location ...

  8. android 自定义控件 使用declare-styleable进行配置属性(源码角度)

          android自定义styleableattrs源码 最近在模仿今日头条,发现它的很多属性都是通过自定义控件并设定相关的配置属性进行配置,于是便查询了解了下declare-styleabl ...

  9. hibernate学习笔记--可选的配置属性

    3.4.  可选的配置属性 有大量属性能用来控制Hibernate在运行期的行为. 它们都是可选的, 并拥有适当的默认值. 警告: 其中一些属性是"系统级(system-level)的&qu ...

随机推荐

  1. 学写网页 #06# table

    A B E C D <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> & ...

  2. 安装PHP扩展32位与64位的误区(x86与x64的查看)

    在安装PHP扩展(DLL,SO),除了需要对应的PHP版本外,在WINDOWS还需要区分(TS线程,NTS非线程),如何判断呢? 1.如何判断是NTS还是TS(WINDOWS用户) 看PHP所在目录中 ...

  3. Python3 join函数和os.path.join用法

    Python3  join函数和os.path.join用法 os.path.join()连接两个文件名地址的时候,就比os.path.join("D:\","test. ...

  4. request 模块详细介绍

    request 模块详细介绍 request Requests 是使用 Apache2 Licensed 许可证的 基于Python开发的HTTP 库,其在Python内置模块的基础上进行了高度的封装 ...

  5. 看起来像是break的考量

    代码运用了if+break: package day20181008; import java.util.Scanner; public class ZuoYe01 { public static v ...

  6. media静态文件统一管理 操作内存的流 - StringIO | BytesIO PIL:python图片操作库 前端解析二进制流图片(了解) Admin自动化数据管理界面

    一.media ''' 1. 将用户上传的所有静态文件统一管理 -- settings.py -- MEDIA_ROOT = os.path.join(BASE_DIR, 'media') 2. 服务 ...

  7. Junit 的Assertions的使用

    import static org.hamcrest.CoreMatchers.allOf; import static org.hamcrest.CoreMatchers.anyOf; import ...

  8. 修改userdata的分区大小【转】

    本文转载自:https://blog.csdn.net/mike8825/article/details/49833833 版权声明:本文为博主原创文章,未经博主允许不得转载.    https:// ...

  9. makefile基本操作

    多数内容copy自youtube的一个视频:https://www.youtube.com/watch?v=E1_uuFWibuM 执行环境:原作者是在Linux下做的视频,而我使用的是win10,w ...

  10. php的内核组成模块和运行原理

    php总共包括3个模块: php内核,zend引擎,php扩展层. 内核: 用于处理请求,文件流,错误处理等相关处理 zend引擎: 将源文件转换成机器语言(实际上是字节码opCode),然后再zen ...