• webpack的核心对象

    webpack中的核心对象我们不会讲所有 webpack 中的对象都拿出来讲解,而是整理了一些比较核心的概念。我们可以先看看下面的类图:下面的论述将会逐一讲述类图中的对象,首先我们先来看一下最顶层的类 Tapable。TapableTapable 提供了 webpack 中基于任务点的架构基础,它将提供任务点注册的方法以及触发的方法。一个简单的例子,使用 plugin 方法来注册一个任务点,然后使用 applyPlugins 方法触发:...
  • webpack的基本架构和构建流程

    webpack的基本架构webpack 的基本架构,是基于一种类似事件的方式。下面的代码中,对象可以使用 plugin 函数来注册一个事件,暂时可以理解为我们熟悉的 addEventListener。但为了区分概念,后续的讨论中会将事件名称为 任务点,比如下面有四个任务点 compilation,optimize, compile, before-resolve:compiler.plugin("compilation", (...
  • 正则表达式中的中括号

    中括号在正则中称为字符组(Character class),有的书翻译为字符类,还有的翻译成字符集。我觉得字符组更好点,毕竟class在计算机属于中代表面向对象里的“类”。顾名思义,字符组为一组字符,它表示在一个位置里可能出现的多种字符。注意这里强调只匹配一个位置哦。简单字符组范围字符组组合字符组排除型字符组字符组运算预定义字符组 简单字符组示例1:[123] 可以分别匹配包含1-3这5个数的字符串。var reg = /[123]/ reg.test('1') // -> tr...
  • Webpack 指南

    Webpack 指南

    打包工具的角色所谓打包工具在web开发中主要解决的问题是:(1)文件依赖管理。毕竟现在都是模块化开发,打包工具首先就是要梳理文件之间的依赖关系。(2)资源加载管理。web本质就是html、js和css的文件组合,文件的加载顺序(先后时机)和文件的加载数量(合并、嵌入、拆分)也是打包工具重点要解决的问题。(3)效率与优化管理。提高开发效率,即写最少的代码,做最好的效果展示;尽可能的使用工具,减少机械coding和优化页面效果,这个是考验打包工具是否具备魅力的点。打包工具的结构由上图可以推出,打包工...
  • git http/https 免密设置记住用户名和密码的方法

    https 方式每次都要输入密码,按照如下设置即可输入一次就不用再手输入密码的困扰而且又享受 https 带来的极速设置记住密码(默认15分钟):git config credential.helper cache 如果想自己设置时间,可以这样做:git config credential.helper 'cache --timeout=3600' 这样就设置一个小时之后失效长期存储密码:git config credential.helper store 增加远程地址的时候带上密码也是可以的:...
    Git
  • Flex布局:语法

    网页布局(layout)是 CSS 的一个重点应用。布局的传统解决方案,基于盒状模型,依赖 display 属性 + position属性 + float属性。它对于那些特殊布局非常不方便,比如,垂直居中就不容易实现。2009年,W3C 提出了一种新的方案----Flex 布局,可以简便、完整、响应式地实现各种页面布局。目前,它已经得到了所有浏览器的支持,这意味着,现在就能很安全地使用这项功能。Flex 布局将成为未来布局的首选方案。本文介绍它的语法。一、...
  • npm stripts 使用指南

    Node 开发离不开 npm,而脚本功能是 npm 最强大、最常用的功能之一。本文介绍如何使用 npm 脚本(npm scripts)。一、什么是 npm 脚本?npm 允许在package.json文件里面,使用scripts字段定义脚本命令:{ // ...   "scripts": { "build": "node build.js" } }上面代码是package.json文件的一个片段,里面的scripts字段是一个对象。它的每一个属性,对应一段脚本...
  • 如何选择开源协议与知识共享协议

    如何选择开源协议与知识共享协议

    开源协议相信很多小伙伴在开发的时候都默认遵循 不重复造轮子(偷懒) 这一原则,只要有了思路就马上在GitHub搜索一下,看看是否有人已经做了,如果已经有做好的,自然就不客气啦,拿过来修改一下就能用,不由得心中暗喜,又省了好多时间能用来把妹(LOL)。然而你可能没注意到,在诸多的开源代码中存在一些陷阱(约束),就是开源协议,下面就带大家了解一下开源协议。为什么要添加开源协议?首先是对作者的保护,防止知识成果被恶意利用。开源协议中一般都包含免责声明(禁止代码的作者承担代码使用后的...