资讯专栏INFORMATION COLUMN

NPM酷库:depd 声明弃用功能

paulquei / 3231人阅读

摘要:有没有优雅的方式呢今天我们了解的库就是专门来控制输出弃用功能警告日志的。声明弃用函数使用包裹一层我们要废弃的函数,那么这个函数在被第一次调用时,就会自动输出警告信息。声明弃用属性使用声明对象指定的属性被弃用。

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高手

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/90715.html

相关文章

  • NPM酷库042:ajv,JSON 模式验证

    摘要:酷库,每天两分钟,了解一个流行库。比如需要满足那些属性,每个属性都是什么类型的,这些条件称之为数据模式验证。在对数据的模式验证领域有专门的标准,叫做。就是按照标准声明一个模式对象,然后使用模式验证工具去验证目标数据。 NPM酷库,每天两分钟,了解一个流行NPM库。· 在NPM酷库041中,我们学习了如何用validator库来验证字符串是否是Email、URL等,在开发中,除了字符串,...

    lavnFan 评论0 收藏0
  • NPM酷库043:joi,语义化模式验证

    摘要:酷库,每天两分钟,了解一个流行库。在酷库中,我们了解到了数据模式验证,以及库。是语义化的对象数据模式验证库,所谓语义化,是指其方法名能够明确表达其含义。 NPM酷库,每天两分钟,了解一个流行NPM库。· 在NPM酷库042中,我们了解到了JSON Schema数据模式验证,以及ajv库。今天我们来学习另一个对象数据验证的库joi。 joi joi 是语义化的对象数据模式验证库,所谓语义...

    2bdenny 评论0 收藏0
  • NPM酷库044:json5,更可读的JSON

    摘要:酷库,每天两分钟,了解一个流行库。是一个格式的扩展,目的是能够让人类更容易读写数据文件。只是一个第三方的库,并非格式的继任者。相对于,有如下各个方面优势。 NPM酷库,每天两分钟,了解一个流行NPM库。· JSON是JS中数据交换时最常用的数据格式,其序列话和反序列化性能非常好,但是其语法却比较严格,比如以下是一个合法的JS声明,却不是一个合法的JSON: { foo: bar } J...

    Flink_China 评论0 收藏0
  • NPM酷库:globby,增强版的glob

    摘要:酷库,每天两分钟,了解一个流行库。昨天,我们学习了一个新库,用于模式匹配目录文件。今天,我们要了解的,是基于,并进一步得到了增强了功能。 NPM酷库,每天两分钟,了解一个流行NPM库。 昨天,我们学习了一个新库 glob,用于模式匹配目录文件。今天,我们要了解的globby,是基于 glob,并进一步得到了增强了功能。 globby 特性 相对于 glob,globby有以下增强功能 ...

    atinosun 评论0 收藏0
  • NPM酷库:winston 多路日志记录

    摘要:昨天,我们认识了库的用法,用来控制输出调试日志。今天我们再了解一个日志记录的库,一个多路传输的日志记录库。所谓多路传输,是指,你可以自定义多个日志储存驱动,比如,将日志输出到终端的同时,将重要日志记录到文件中,甚至写到数据库中。 NPM酷库,每天两分钟,了解一个流行NPM库。 昨天,我们认识了debug库的用法,用来控制输出调试日志。但是,debug的特性适合于开发调试,并不适合程序记...

    荆兆峰 评论0 收藏0

发表评论

0条评论

paulquei

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<