webpack-plugin-md


title: webpack plugins Hooks 介绍
img: //bloglibs.oss-cn-beijing.aliyuncs.com/techlogo/nodejs-logo.png
date: 2018-07-16 23:25:54
tags:

  • webpack
  • hooks
  • compiler
    category:
  • – 技术

webpack 使用有一段时间了, 有时候为了工程化比较完善,不得不自己开发添加一些hooks完善脚手架,

使用

 pluginsConfig.push(new FinishShell({
        onBuildEnd: ['zip -r sdk_'+appVersions+'.zip ./'+publishDirName] 
    }))

plugins

'use strict';
var exec = require('child_process').exec;

function puts(error, stdout, stderr) {
    console.log(stdout);
}

function WebpackShellPlugin(options) {
  var defaultOptions = {
    onBuildStart: [],
    onBuildEnd: []
  };

  this.options = Object.assign(defaultOptions, options);
}

WebpackShellPlugin.prototype.apply = function(compiler) {
  const options = this.options;

  compiler.plugin("compilation", compilation => {
    if(options.onBuildStart.length){
        console.log("Executing pre-build scripts");
        options.onBuildStart.forEach(script => exec(script, puts));
    }
  });

  compiler.plugin('done', function(){
    if(options.onBuildEnd.length){
        console.log("Executing post-build scripts");
        options.onBuildEnd.forEach(script => exec(script, puts));
    }
  })
};

module.exports = WebpackShellPlugin;

更多

专业模式下常用的设置参数

拍照参数

ISO (感光度)

ISO又称感光度,是胶片对光线的化学反应速度,也是当年制造胶片行业中感光速度的标准。低感光度指100以下的胶片,中感光度指ISO200~800,高感光度为ISO800以上。运用专业模式下,我们就可以根据环境亮度来选择需要的ISO感光。比如阴天环境可用ISO200、演唱会环境可用ISO400以上,随着高感的数值上升,放大器也会把讯号中的噪声放大,产生粗微粒的影像。

更多

nd-tutorial

1. ND 镜的分类与特性

  • 圆形 ND 镜
    圆形 ND 镜的光学质量不错,价格较低,操作起来也比较简单,非常适合新手使用。
    它的优点是:通过螺旋卡口与镜头连接,滤镜与镜头缝隙小,不易出现眩光或漏光;重量低体积小,便于携带。
    缺点是,它的尺寸必须和镜头尺寸相匹配,无法 “一镜多用”;此外,圆形 ND 镜也不大方便和其它滤镜(如 CPL、GND)叠加使用。

    • 方形 ND 镜

    与圆形螺旋卡口式 ND 镜相对应的,是方形插片 ND 镜。你需要先在镜头上装载滤镜支架,再往支架上安装滤镜。

    方形 ND 镜的单价明显要比圆形的高,但胜在 “一镜多用”,也方便与其它类型方形插片滤镜的叠加使用。

    此外,据说方形 ND 镜和超广角镜头搭配使用,暗角会比圆形 ND 镜少一些。

文章来源: nd-tutorial

栈空间和堆空间:数据是如何存储的

对于前端开发者来说,JavaScript 的内存机制是一个不被经常提及的概念 ,因此很容易被忽视。特别是一些非计算机专业的同学,对内存机制可能没有非常清晰的认识,甚至有些同学根本就不知道 JavaScript 的内存机制是什么

但是如果你想成为行业专家,并打造高性能前端应用,那么你就必须要搞清楚JavaScript 的内存机制了。

其实,要搞清楚 JavaScript 的内存机制并不是一件很困难的事,在接下来的三篇文章(数据在内存中的存放、JavaScript 处理垃圾回收以及 V8 执行代码)中,我们将通过内存机制的介绍,循序渐进带你走进 JavaScript 内存的世界。

今天我们讲述第一部分的内容——JavaScript 中的数据是如何存储在内存中的。虽然 JavaScript 并不需要直接去管理内存,但是在实际项目中为了能避开一些不必要的坑,你还是需要了解数据在内存中的存储方式的

更多

咖啡的烘焙你喝的咖啡应该选哪种咖啡豆

由浅烘焙至深烘焙

  • 《轻度烘焙 Light Roast》

咖啡豆烘焙到接近第一次爆裂期,口味和香味均不足,一般用来试验,很少用来品尝的

  • 《肉桂烘焙 Cinnamon Roast》

咖啡豆烘焙到约第一次爆裂期中期,美式咖啡常采用的一种烘焙程度

※此种烘焙度会凸显酸味,较不受大众喜爱,在产区上,少涩味的古巴咖啡豆,海地或是多米尼加高熟成、高精致度的加勒比海咖啡豆为佳,较适合果肉薄、水分少的低洼咖啡豆,或是熟成两年以上、干燥度正好的咖啡豆!

  • 《中等烘焙 Medium Roast》

咖啡豆烘焙到第一次爆裂期结束,常做美式咖啡或混合咖啡之用

更多

怎么做好向上管理

做好三件事情即可,一是对表,要和上司保持良好沟通;二是建立信任,超预期完成任务,做一个靠谱的下属;三是做好“支撑”,补位不越位。

  • 对表就是“客户思维”,把上司作为你最重要的客户,要清楚地了解你的上司或者上司的上司真正关心和思考的是什么。如果他们思考利润,你在思考成本,他们思考未来,你在思考现在和过去,就很难形成一致的意见,更不用说向上管理了。你和上司之间一定要步调一致,方向一致。就像海豹突击队进攻以前,就是说清楚两件事,一是今天的任务是什么,要营救谁、还是干掉谁,二是现在的时间是几点几分,对好表。

沟通的过程中,要注意了解你的老板,用他适应、习惯、需要的方式和他沟通,达到你的目的。比如,有的老板是阅读型,有的则是倾听型。阅读型的需要你给他写报告、列数字,这样他才能很快把握你要汇报的东西;而倾听型的呢,可能更喜欢你当面和他把事情讲清楚,甚至用感性和情绪打动他。

更多

2019年个人总结篇

不知不觉2019年已经接近尾声,如果要用两个字来总结今年,可能『懊悔』这个词更加恰当,懊悔这个词的意思是“因过错而自恨”
满满的一年都沉浸在这个词当中,严丝合缝,一点都不夸张,佛家理论:万物皆有因果,种恶因得恶果,这也是我种下的恶因,自食其果。

更多

图片打乱恢复的想法,验证失败

这篇都是web前端技术,可能我还没有找到合适的方式,目前没有验证成功。

想法很简单,就是根据js的一些api,编辑arraybuffer之后保存图片,因为发现在原始的arraybuffer 后面添加数据,对图片显示没影响,
能够打乱图片并且在根据存储在图片中arraybuffer的数据规则,进行恢复。

图片打乱和恢复

进入正题前,需要对下面两点有所了解

  • ArrayBuffer
  • Int8Array (Int16Array) 等等

更多

路是自己选的,不能只看光鲜的一面

  • 如何看待程序员的中年的危机?
  • 如果让你倒回时光,你会做一些什么来避免中年危机?
  • 如果能给建议,选1-2条感受最深的建议,给年轻程序员?

我汇总如下:

1、如何看待程序员的中年的危机?

A:中年危机一定有,或早或晚,担心也没有用。但是注意不要被别人过度放大,让你寝食难安。通过想办法提高自己的格局,来看待中年危机,它本质上就是对自己潜力的不信任。所以找一些自己身上深挖的潜力,然后来持续建立一套护城河体系。可能很多人明白不了,慢慢体会。无****论在大厂还是小厂,广结人脉,在中年危机时,有奇效。这句话看似简单,目前我也无法参透背后的深层意思~

2、如果让你倒回时光,你会做一些什么来避免中年危机?

A:这个问题不同的人,说法不同,老江是说,年轻努力提高技术,争取去一线大厂。这样即使干培训,也有不错的光环。老宋是说,不贪念于技术本身,也是多想在业务创造价值上下功夫。技术服务于业务。老莫是说,那时候,胆子还太小,应该当时再借钱多买几套房子,选择大于努力,光努力是远远不够,年轻时就应该多和一些高格局的人和牛人结识,对于一些关键决断大有裨益。

更多

webassembly【二】typescript 类型说明

今天系统的学习一下,webassembly typescript的类型,进入正题之前,看下面几行代码



export function m(x: i32): i32 {
    if (x === 1 || x === 2) {
        return 1;
    }
    return f(x - 1) + f(x - 2)
}


export function invert(byteSize: i32): i32 {
  for (let i = 0; i < byteSize; i += 4) {
    let pos = i + byteSize;
    store<u8>(pos + 0, 255 - load<u8>(i + 0));
    store<u8>(pos + 1, 255 - load<u8>(i + 1));
    store<u8>(pos + 2, 255 - load<u8>(i + 2));
    store<u8>(pos + 3, 255);
  }
  return 0;
}

更多