欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Node.js如何優(yōu)雅的封裝一個實用函數(shù)的npm包的方法

 更新時間:2019年04月29日 10:12:08   作者:蕭蕭fe  
這篇文章主要介紹了Node.js如何優(yōu)雅的封裝一個實用函數(shù)的npm包的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

為什么要封裝一個實用函數(shù)的 npm 包?

當你連續(xù)寫了多個 Node 應(yīng)用, 都想要 console 漂亮一點, 你可能會像下面這樣封裝一個函數(shù)

import chalk from "chalk";

function noop(msg: string): string {
  return msg
}

function log(fn: Function): (msg: string) => void {
  return (msg: string): void => {
    console.log(fn(msg));
  };
}

export default {
  success: log(chalk.green),
  error: log(chalk.red),
  warn: log(chalk.yellow),
  info: log(chalk.cyan),
  log: log(noop)
};

調(diào)用方式

import log from './log'
log.success("hello green message!")
log.error("hello red message!")
log.warn("hello yellow message!")
log.info("hello cyan message!")
log.log("hello normal message!")

慢慢的發(fā)現(xiàn)每個項目都需要這么一個 log 文件, 是的! 我們此時可以考慮把這些常用的函數(shù)封裝集合到一個 npm 包里面了!

需要注意的事項有哪些

單元測試

考慮到代碼量的增加以及貢獻者的增加事先加入單元測試是很有必要的

  • 測試框架 - Mocha 是一個功能豐富的Javascript測試框架,它能運行在Node.js和瀏覽器中,支持BDD、TDD、QUnit、Exports式的測試
  • 斷言庫 - assert 是 Node 自帶的

持續(xù)集成

Travis CI 提供的是持續(xù)集成服務(wù)(Continuous Integration,簡稱 CI)。它綁定 Github 上面的項目,只要有新的代碼,就會自動抓取。然后,提供一個運行環(huán)境,執(zhí)行測試,完成構(gòu)建,還能部署到服務(wù)器。

代碼層面

擴展開放, 修改關(guān)閉的設(shè)計原則

當 src 目錄新增一個實用函數(shù)文件, index.ts 能夠自動抓取然后掛載在 module.export 上

通過 getter 巧妙的實現(xiàn)懶加載導出的功能

Object.defineProperty(module.export, 'log', {
  configurable: false,
  enumerable: true,
  get: () => require('./log')
});

項目地址

https://github.com/xiaoxiaojx/enhanced 歡迎 🌟 Star 🌟 和 Pr  和 在項目中使用~

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Node.js數(shù)據(jù)流Stream之Duplex流和Transform流用法

    Node.js數(shù)據(jù)流Stream之Duplex流和Transform流用法

    這篇文章介紹了Node.js數(shù)據(jù)流Stream之Duplex流和Transform流的用法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07
  • node.js微信公眾平臺開發(fā)教程

    node.js微信公眾平臺開發(fā)教程

    這篇文章主要為大家分享了node.js微信公眾平臺開發(fā)教程,如何進行微信開發(fā),感興趣的小伙伴們可以參考一下
    2016-03-03
  • Mac OS X 系統(tǒng)下安裝和部署Egret引擎開發(fā)環(huán)境

    Mac OS X 系統(tǒng)下安裝和部署Egret引擎開發(fā)環(huán)境

    之前的文章,我們已經(jīng)介紹了Windows 系統(tǒng)下安裝和部署Egret的開發(fā)環(huán)境,那么,這篇文檔中,我們主要介紹在Mac環(huán)境中安裝Egret以及部署
    2014-09-09
  • 詳談Node.js之操作文件系統(tǒng)

    詳談Node.js之操作文件系統(tǒng)

    下面小編就為大家?guī)硪黄斦凬ode.js之操作文件系統(tǒng)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • Dapr+NestJs編寫Pub及Sub裝飾器實戰(zhàn)示例

    Dapr+NestJs編寫Pub及Sub裝飾器實戰(zhàn)示例

    這篇文章主要為大家介紹了Dapr+NestJs編寫Pub及Sub裝飾器的實戰(zhàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • Node.js 使用request模塊下載文件的實例

    Node.js 使用request模塊下載文件的實例

    今天小編就為大家分享一篇Node.js 使用request模塊下載文件的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • Nodejs對postgresql基本操作的封裝方法

    Nodejs對postgresql基本操作的封裝方法

    今天小編就為大家分享一篇Nodejs對postgresql基本操作的封裝方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-02-02
  • Node.js如何通過http調(diào)用外部接口

    Node.js如何通過http調(diào)用外部接口

    這篇文章主要介紹了Node.js如何通過http調(diào)用外部接口問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • nodejs基于WS模塊實現(xiàn)WebSocket聊天功能的方法

    nodejs基于WS模塊實現(xiàn)WebSocket聊天功能的方法

    這篇文章主要介紹了nodejs基于WS模塊實現(xiàn)WebSocket聊天功能的方法,結(jié)合實例形式分析了nodejs使用WS模塊進行WebSocket通信實現(xiàn)聊天功能的具體操作技巧,需要的朋友可以參考下
    2018-01-01
  • nodejs log4js 使用詳解

    nodejs log4js 使用詳解

    這篇文章主要介紹了nodejs log4js 使用詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-05-05

最新評論