景灵

——我要我想要的


  • 首页

  • 分类

  • 归档

  • 标签

  • 关于

webpack学习笔记

发表于 Jan 5 2016

1. webpack配置文件解析

1.1 参数解析

2. api

2.1 webpack(options, callback)

下面是其源码:

function webpack(options, callback) {
    var compiler;
    if(Array.isArray(options)) {
        compiler = new MultiCompiler(options.map(function(options) {
            return webpack(options);
        }));
    } else if(typeof options === "object") {
        new WebpackOptionsDefaulter().process(options);

        compiler = new Compiler();
        compiler.options = options;
        compiler.options = new WebpackOptionsApply().process(options, compiler);
        new NodeEnvironmentPlugin().apply(compiler);
        compiler.applyPlugins("environment");
        compiler.applyPlugins("after-environment");
    } else {
        throw new Error("Invalid argument: options");
    }
    if(callback) {
        if(typeof callback !== "function") throw new Error("Invalid argument: callback");
        if(options.watch === true) {
            var watchOptions = (!Array.isArray(options) ? options : options[0]).watchOptions || {};
            // TODO remove this in next major version
            var watchDelay = (!Array.isArray(options) ? options : options[0]).watchDelay;
            if(watchDelay) {
                console.warn("options.watchDelay is deprecated: Use 'options.watchOptions.aggregateTimeout' instead");
                watchOptions.aggregateTimeout = watchDelay;
            }
            return compiler.watch(watchOptions, callback);
        }
        compiler.run(callback);
    }
    return compiler;
}

RGB与CMY

发表于 Oct 26 2015   |   分类于 图片

原色

  原色,是指不能透过其他颜色的混合调配而得出的“基本色”。以不同比例将原色混合,可以产生出其他的新颜色。肉眼所见的色彩空间通常由三种基本色所组成,称为“三原色”。一般来说叠加型的三原色是红色、绿色、蓝色(RGB);而消减型的三原色是品红色、黄色、青色(CMY)。在传统的颜料着色技术上,通常红、黄、蓝会被视为原色颜料。(现代的美术书已不采用这种说法,而采用消减型的三原色。)

阅读全文 »

ssl协议

发表于 Oct 23 2015

  SSL(Secure Sockets Layer) 安全套接层,及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密。

解析

  Secure Socket Layer,为Netscape所研发,用以保障在Internet上数据传输之安全,利用数据加密(Encryption)技术,可确保数据在网络上之传输过程中不会被截取及窃听。一般通用之规格为40 bit之安全标准,美国则已推出128 bit之更高安全标准,但限制出境。只要3.0版本以上之I.E.或Netscape浏览器即可支持SSL。
当前版本为3.0。它已被广泛地用于Web浏览器与服务器之间的身份认证和加密数据传输。
  SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。SSL协议可分为两层: SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。 SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。

提供服务

1)认证用户和服务器,确保数据发送到正确的客户机和服务器;

阅读全文 »

图片之渐进/交错

发表于 Oct 21 2015

一、简介

  JPEG、GIF和PNG这三种图像格式都提供了一种功能,让图像能够更快地显示。图像可以以一种特殊方式存储,显示时先大概显示图像的草图,当文件全部下载后再填充细节(百度图片,QQ空间,点点网等显示大图时都使用的这种方式)。这起到一种很有意义的心理效果,因为这样使人们有东西可看,而不必坐着干等大型图像慢慢显示在屏幕上。但这种效果并不是所有浏览器都支持。以这种方式保存的文件叫交错gif、交错png、渐进jpg。

阅读全文 »

passport详解

发表于 Oct 21 2015

转自:http://www.tuicool.com/articles/nMfYNn


概述  

  passport.js是Nodejs中的一个做登录验证的中间件,极其灵活和模块化,并且可与Express、Sails等Web框架无缝集成。Passport功能单一,即只能做登录验证,但非常强大,支持本地账号验证和第三方账号登录验证(OAuth和OpenID等),支持大多数Web网站和服务。

  • 官网: http://passportjs.org/
  • Github: http://github.com/jaredhanson/passport
  • NPM: https://www.npmjs.org/package/passport

策略(Strategy)

阅读全文 »

搜狗输入法mac下全半角切换快捷键

发表于 Oct 13 2015   |   分类于 mac

安装完搜狗输入法之后,点右上角的输入法标志——“美国国旗”,如下图所示,选中搜狗拼音 – “偏好设置”。




  在偏好设置中的“摁键”一项当中有“全半角”切换,一般情况下,搜狗 for mac是禁用快捷键的,你需要如下图所示选择快捷键,快捷键组合同样是“Shift+空格”。




  附注:部分亲们升级到 10.9以上系统之后会发现,Command+空格 快速切换输入法的功能失效了,组合键出来的是快速搜索功能。这个时候,你需要在“偏好设置——快捷键”里面将偏好设置恢复成默认。

V8之旅--全局架构

发表于 Oct 13 2015   |   分类于 nodejs

来源:http://newhtml.net/v8-full-compiler/



  在过去的五年中,JavaScript的性能有了极大的提升,这主要归功于JavaScript虚拟机的执行机制由解释演变为了JIT。现在,JavaScript成为了HTML5的中坚力量,推动着新一波Web技术的发展。JavaScript引擎中,V8是最早使用原生代码的引擎之一。V8现已成为了Google Chrome、Android浏览器、WebOS及Node.js这样的其他项目中不可分割的重要组件。

阅读全文 »

V8之旅--垃圾回收

发表于 Oct 13 2015   |   分类于 node.js

来源:http://segmentfault.com/a/1190000000440270




这篇文章的所有内容均来自 朴灵的《深入浅出Node.js》及A tour of V8:Garbage Collection,后者还有中文翻译版V8 之旅: 垃圾回收器,我在这里只是做了个记录和结合

垃圾回收器

JavaScript的垃圾回收器

JavaScript使用垃圾回收机制来自动管理内存。垃圾回收是一把双刃剑,其好处是可以大幅简化程序的内存管理代码,降低程序员的负担,减少因长时间运转而带来的内存泄露问题。但使用了垃圾回收即意味着程序员将无法掌控内存。ECMAScript没有暴露任何垃圾回收器的接口。我们无法强迫其进行垃圾回收,更无法干预内存管理

阅读全文 »

人脸特征点定位与道具互动

发表于 Oct 13 2015   |   分类于 人工智能

来源:http://impd.tencent.com/?p=33

人脸特征点定位就是通过计算机在人脸图像中自动地定位出人脸各个器官(嘴巴、鼻子、眼睛、眉毛、人脸轮廓等)的准确位置,如图1所示。人脸特征点定位技术有很多的应用,如人脸识别、人脸表情分析、人脸动画、人脸美化等。然而,实际应用中存在各种因素严重影响了人脸特征点的正确定位,这些因素主要有光照变化、姿态变化、表情变化、头发、眼镜、装饰物、遮挡物等。因此,人脸特征点定位是一项非常有挑战性的技术。

阅读全文 »

V8引擎

发表于 Oct 12 2015


V8是一个由Google开发的开源JavaScript引擎,用于ChromeC浏览器中。
V8以其效率出名,其高效的原因主要有以下几点:

  • 在运行之前将JavaScript编译成了机器码,而非字节码或是解释执行它。
  • 使用了如内联缓存(inline caching)等方法来提高性能。

因此,JavaScript程序与V8引擎的速度媲美二进制编译。

传统的Javascript是动态语言,JavaScript继承方法是使用prototype,通过指定prototype属性,便可以指定要继承的目标。属性可以在运行时添加到或从对象中删除,引擎会为运行中的对象创建一个属性字典,新的属性都要通过字典查找属性在内存中的位置。V8为object新增属性的时候,就以上次的hidden class为父类别,创建新属性的hidden class的子类别,如此一来属性访问不再需要动态字典查找了。

为了缩短由垃圾收集造成的停顿,V8使用stop-the-world, generational, accurate的垃圾收集器。在执行回收之时会暂时中断程序的执行,而且只处理对象堆栈。还会收集内存内所有对象的指针,可以避免内存溢出的情况。V8汇编器是基于Strongtalk汇编器。

上面是维基百科的内容,太抽象不是很明白,找到一篇QQ客户端团队关于V8引擎简介的博客,原文地址http://impd.tencent.com/?p=35。

V8引擎作为一种动态语言运行时平台,需要实现动态语言源程序解析、执行,基本流程如下:








参考文献

  1. 维基百科:https://zh.wikipedia.org/wiki/V8_(JavaScript%E5%BC%95%E6%93%8E)
  2. http://impd.tencent.com/?p=35
1234…8
crazyjingling

crazyjingling

crazyjingling's blog | Node.js | javascript

75 日志
60 分类
106 标签
github twitter weibo zhihu
© 2016 crazyjingling
由 Hexo 强力驱动
主题 - NexT.Mist