NPM酷库功能,每天两分钟了解一个流行的NPM库。Node.js高效编程基于大量的NPM开源库。在开发应用程序时,寻找特定领域的NPM库比从头开始编写代码要高效得多。如果某个领域没有对应的公共npm库,那么我们可以自己写一个npm库,发布到npm仓库,方便大家和自己以后使用。这是Node.js的正确编码姿势。如果我们把npm库发布出来供大家使用,那么我们npm库的接口就不能随便改,以免给其他用户带来麻烦。如果有些接口要调整,最好提前告诉大家,有些接口会提前几个版本弃用,给其他用户一些整改的时间。最好的通知方式是当你的代码执行时调用了一些将要弃用的接口,在控制台输出一条警告日志,让其他依赖你库的开发者关注到你的通知。但是要注意,只有在第一次调用接口时才发送通知,否则很可能给项目控制台带来灾难,因为你的底层库提供的接口会被多次调用。我们可以增加sentinel变量来控制一个已弃用的接口只输出警告。但是随着你的publiclibrary越来越大,可能会出现很多interfacedeprecationwarnings,然后就会出现与主逻辑无关的sentinelvariables和judgements。有没有一种优雅的方式来做到这一点?depd我们今天所知道的depd库是为了控制deprecated函数警告日志的输出而设计的。最简单的用法:constdepd=require('depd');constdeprecate=depd('我的模块');deprecate('此函数已弃用');我们可以在任何地方使用deprecate()来输出我们的日志,同样的日志只会输出一次,因为depd内置了sentinel变量管理。声明弃用的函数constdepd=require('depd');constdeprecate=depd('my-cool-module');exports.oldfunction=deprecate.function(functionoldfunction(){//所有对函数的调用都被弃用});使用deprecate.function()包裹一层我们要弃用的函数,那么当这个函数第一次被调用时,它会自动输出警告信息。声明弃用的属性constdepd=require('depd');constdeprecate=depd('my-cool-module');exports.oldprop='something';//消息自动派生自属性nameddeprecate.property(exports,'oldprop');使用deprecate.property()声明对象的指定属性已弃用。参考https://github.com/dougwilson...欢迎关注公众号:梁星辰每天学一个NPM库,一年后成为Node.js高手
