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. Golang并发编程优势与核心goroutine及注意细节

    Go语言为并发编程而内置的上层API基于CSP(communication sequential processes,顺序通信进程)模型.这就意味着显式锁都是可以避免的,比如资源竞争,比如多个进程同时 ...

  2. 被fancybox坑的心路历程

    今天项目中需要使用fancybox来展示图片,但是使用中发现fancybox没起作用,点击图片直接刷新了页面! fancybox的原理是通过给a标签绑定事件,使得a标签不在是直接跳转链接,而是把链接中 ...

  3. udp丢包 处理

    转自: 自己在做UDP传输时遇到的问题,接收端没设置缓存,结果总是丢包. 看到这篇文章设置了一下接收缓存就好 *;//设置为32K setsockopt(s,SOL_SOCKET,SO_RCVBUF, ...

  4. RAFT实践

    1.  raft org 2. paper 3. animation 4. python examples Raft-python  这个不是很好用. simpleRaft Raft算法分析与理解  ...

  5. shell脚本一键安装redis集群[最终版]

    直接上shell了. #!/bin/bash #---------------------------------------------------------------------------- ...

  6. ListView与ArrayAdapter(二)

    ArrayAdapter: 数组适配器,用于简单的文字列表 activity_main.xml <RelativeLayout xmlns:android="http://schema ...

  7. spring配置jax-ws

    在spring配置文件中新建bean(或者是在配置文件中添加bean),在该bean中添加指定的访问地址. @Bean public static SimpleJaxWsServiceExporter ...

  8. hihoCoder week11 树中的最长路

    题目链接: https://hihocoder.com/contest/hiho11/problem/1 求树中节点对 距离最远的长度 #include <bits/stdc++.h> u ...

  9. Android开发——去掉系统自带标题栏的几种方式

    https://blog.csdn.net/qq_28585471/article/details/75991613 今天在练习自定义标题栏(Android初级开发(四)——补充3)的过程中遇到了隐藏 ...

  10. (转载)windows下安装配置Xampp

    XAMPP是一款开源.免费的网络服务器软件,经过简单安装后,就可以在个人电脑上搭建服务器环境.本文为大家介绍Windows中安装XAMPP(Apache+Mysql+PHP)及使用方法及其相关问题的总 ...