国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > JS > 正文

Node.js如何優雅的封裝一個實用函數的npm包的方法

2024-05-06 16:50:23
字體:
來源:轉載
供稿:網友

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

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

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)};

調用方式

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!")

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

需要注意的事項有哪些

單元測試

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

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

持續集成

Node.js,封裝,實用函數,npm包

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

Node.js,封裝,實用函數,npm包

代碼層面

擴展開放, 修改關閉的設計原則

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

通過 getter 巧妙的實現懶加載導出的功能

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

項目地址

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 龙川县| 罗山县| 枝江市| 阳新县| 永顺县| 闽清县| 延津县| 宾川县| 滕州市| 旺苍县| 秀山| 天祝| 特克斯县| 资源县| 观塘区| 华宁县| 荔浦县| 梅州市| 商河县| 光泽县| 报价| 竹溪县| 宁远县| 鹿邑县| 湄潭县| 台湾省| 维西| 文水县| 岑溪市| 独山县| 连南| 自贡市| 名山县| 确山县| 鹤壁市| 黄龙县| 寻乌县| 沙湾县| 方山县| 视频| 逊克县|