2

NPM酷库,每天两分钟,了解一个流行NPM库。

Node.js 高效率编程的基础是大量的NPM开源库,开发应用时,找特定领域的NPM库要比自己从头写代码要高效得多。如果某个领域没有对应的公共NPM库,那么我们可以自己编写一个NPM库,并发布到NPM仓库,供大家和自己日后使用。这才是Node.js正确的编码姿势。

如果我们发布了NPM库供大家使用,那么,我们的NPM库的接口就不能随便变化,以免给其他的使用者带来麻烦。如果某些接口不得不调整,最好提前几个版本告诉大家某些接口要弃用,以给其他使用者一些整改的时间。

最好的通知方式,就是在你的代码执行时,如果某些将要废弃的接口被调用,那就在控制台中输出警告日志,这样,依赖你的库的其他开发者就能关注到你的通知。

但是要注意,只在接口第一次被调用的时候发出通知,否则,很有可能给项目的控制台带来灾难,因为你的底层库提供的接口会被多次调用。我们可以增加哨兵变量来控制一个废弃接口只输出一次警告。但是,随着你的公共库的规模变大,有可能会有很多接口弃用警告,那么就会到处充斥着和主体逻辑无关的哨兵变量和判断。有没有优雅的方式呢?

depd

今天我们了解的depd库就是专门来控制输出弃用功能警告日志的。

最简用法:

const depd = require('depd');

const deprecate = depd('my-module');

deprecate('this function deprecated');

我们可以在任何地方使用 deprecate() 输出我们的日志,同样的日志只会输出一次,因为 depd 已经内置了哨兵变量的管理。

声明弃用函数

const depd = require('depd');

const deprecate = depd('my-cool-module');

exports.oldfunction = deprecate.function(function oldfunction () {
  // all calls to function are deprecated
});

使用 deprecate.function() 包裹一层我们要废弃的函数,那么这个函数在被第一次调用时,就会自动输出警告信息。

图片描述

声明弃用属性

const depd = require('depd');

const deprecate = depd('my-cool-module');

exports.oldprop = 'something';

// message automatically derives from property name
deprecate.property(exports, 'oldprop');

使用 deprecate.property() 声明对象指定的属性被弃用。

参考资料

https://github.com/dougwilson...

欢迎关注公众号:梁兴臣

梁兴臣

每天了解一个NPM库,一年后成为Node.js高手


脉冲云_梁兴臣
616 声望194 粉丝

脉冲云CTO,JS全栈开发,DevOps实施,开发体验优化,开发效率提升