为什么要打包一个包含实用功能的npm包?
当您连续编写多个Node应用程序并希望控制台美观时,您可以封装一个函数如下
从“粉笔”导入粉笔;function noop(msg:字符串):字符串{ return msg }函数日志(fn: Function): (msg:字符串)=void { return (msg:字符串): void={ console . log(fn(msg));};}导出默认{ success: log(粉笔. green)、error: log(粉笔. red)、warn: log(粉笔. yellow)、info: log(粉笔. cyan)、log : log(noop)};呼叫模式
从“”导入日志。/log ' log . success(' hello green message!)log.error('hello red消息!)log.warn('hello黄色消息!)log.info('hello青色消息!)log.log('你好正常消息!)慢慢发现,每个项目都需要这样的日志文件,没错!此时,我们可以考虑将这些常用功能打包到一个npm包中!
有哪些注意事项
单元测试
考虑到代码量的增加和贡献者的增加,有必要提前加入单元测试
测试框架-Mocha是一个功能丰富的Javascript测试框架,可以在Node.js和浏览器中运行,支持BDD、TDD、QUnit和Exports风格的测试断言库-assert是Node的持续集成
特拉维斯CI提供持续集成服务(CI)。它绑定到Github上的项目,只要有新代码就会自动抓取。然后,提供一个运行环境,执行测试,完成构建,并部署到服务器。
代码级
扩大开口,修改封闭的设计原则
当一个实用函数文件被添加到src目录中时,index.ts可以被自动抓取,然后装载到module.export上
通过getter巧妙地实现了惰性加载和导出的功能
object . defineperoperty(module . export,' log ',{ configurable: false,enumerable: true,get: ()=require('。/log ')});项目地址
https://github.com/xiaoxiaojx/enhanced欢迎Star和Pr以及它们在项目中的使用~
以上就是本文的全部内容。希望对大家的学习有帮助,支持我们。