GitHub 在其 2019 年的年度 State of the Octoverse 中公布了依赖项目最多的顶级开源包。

罗达什

Lodash 是一个 JavaScript 实用程序库和一个非常流行的 NPM 包。

它为常见的编程任务提供实用功能,通过消除使用数组、数字、对象、字符串、日期等的麻烦,使 JavaScript 更容易。

GitHub 徽标lodash/lodash

提供模块化、性能和附加功能的现代 JavaScript 实用程序库。

罗达什

网站|文档|FP 指南|贡献|维基|行为准则|推特|聊天

Lodash库导出为UMD模块。

使用lodash-cli生成:

$ npm 运行构建

$ lodash -o ./dist/lodash.js

$ lodash core -o ./dist/lodash.core.js

下载

  • 核心构建(~4 kB gzip)

  • 完整版本(~24 kB gzip)

  • CDN 副本jsDelivr Hits

Lodash 在MIT 许可证下发布并支持现代环境。

查看构建差异并选择适合您的。

安装

在浏览器中:

<script src\u003d"lodash.js"></script>

使用 npm:

$ npm 和 -g npm

$ npm i lodash

注意:如果您使用的是 npm < 5.0.0,请添加--save

在 Node.js 中:

// 加载完整的构建。

var _ \u003d 要求('lodash');

// 加载核心构建。

var _ \u003d require('lodash/core');

// 加载 FP

...

在 GitHub 上查看

它有大量的辅助功能,可以帮助您提高工作效率并节省大量时间。

该库非常轻巧(约 24kB gzipped)、高效、流行和喜爱(Github 上超过 42K 星)。

它被 Github 上超过 5.4m 的存储库使用。

快递

Express 是一个基于 MVC 架构的最小且灵活的 Node.js Web 应用程序框架,它为 Web 和移动应用程序提供了一组强大的功能。

MongoDB u003d 数据库

Express.js u003d 后端网络框架

Angular u003d 前端框架

Node.js u003d 后端平台 / Web 框架

GitHub logoexpressjs/express

用于节点的快速、不拘一格、极简主义的 Web 框架。

快递标志

用于节点的快速、无主见、极简主义的 Web 框架。

NPM 版本NPM 下载Linux构建Windows 构建测试覆盖率

const express \u003d require('express')

常量应用程序 \u003d 快递()

app.get('/', function (req, res) {

res.send('Hello World')

})

app.listen(3000)

安装

这是一个Node.js模块,可通过npm 注册表获得。

安装前下载安装 Node.jsNode.js 0.10 或更高版本。

如果这是一个全新的项目,请确保首先使用npm init命令创建一个package.json

使用npm install命令完成安装:

$ npm 安装快递

关注我们的安装指南了解更多信息。

特点

  • 鲁棒路由

  • 专注于高性能

  • 超高测试覆盖率

  • HTTP 助手(重定向、缓存等)

  • 查看系统支持14+模板引擎

  • 内容协商

  • 用于快速生成应用程序的可执行文件

文档和社区

  • 网站和文档- [...

在 GitHub 上查看

Express 的灵感来自流行的 Ruby 框架 Sinatra。它为构建单页和多页 Web 应用程序提供了许多强大的功能。

它在 Github 上有超过 46K 的星星。

它被 Github 上超过 5.2m 的存储库使用。

视觉媒体调试

Node.js 核心调试技术之后的 JavaScript 调试实用程序。适用于 Node.js 和 Web 浏览器。

该工具针对库和应用程序。除了 Node.js,Debug 也适合在浏览器中工作。

GitHub 徽标visionmedia/调试

一个模仿 Node.js 核心调试技术的小型 JavaScript 调试实用程序。适用于 Node.js 和 Web 浏览器

调试

构建状态覆盖状态SlackOpenCollectiveOpenCollective

一个模仿 Node.js 核心调试技术的小型 JavaScript 调试实用程序。适用于 Node.js 和 Web 浏览器。

安装

$ npm 安装调试

用途

debug暴露一个函数;只需将此函数传递给您的模块名称,它将返回console.error的修饰版本,供您传递调试语句。这将允许您切换模块不同部分以及整个模块的调试输出。

示例app.js:

var debug \u003d require('debug')('http')

, http \u003d 要求('http')

, 名称 \u003d '我的应用程序';

// 假应用

debug('正在启动 %o', name);

http.createServer(函数(req, res){

调试(req.method + ' ' + req.url);

res.end('你好\n');

})。听(

...

在 GitHub 上查看

它在 Github 上有超过 8K 的星星。

它被 Github 上超过 5.3m 的存储库使用。

继承

JavaScript 中简单简单的微小继承。

此包导出标准继承自 node 环境中的 node.jsutil模块。它还通过浏览器字段提供替代的浏览器友好实现。

GitHub logoisaacs/继承

JavaScript 中简单简单的小继承

浏览器友好的继承与标准 node.js 完全兼容继承。

这个包在 node 环境中从 node.jsutil模块导出标准inherits,但也通过浏览器字段提供替代浏览器友好的实现。替代实现是位于独立模块中的标准副本的文字副本,以避免需要util。它还为不支持Object.create的旧浏览器提供了垫片。

在确保您在 node.js 环境中使用标准inherits实现的同时,它允许捆绑程序(例如browserify)在您的客户端代码中不包含完整的util包,如果您只需要inherits函数。值得,因为util包的浏览器填充程序很大,而inherits通常是您需要的单个功能。

对于任何有机会不仅在 node.js 中使用而且在浏览器中使用的代码,建议使用这个包而不是require('util').inherits

使用情况

继承\u003d

...

在 GitHub 上查看

它被 Github 上超过 5.1m 个存储库使用。

次 MS

该包用于轻松将各种时间格式转换为毫秒。

适用于 Node.js 和浏览器

GitHub 徽标vercel/毫秒

微小的毫秒转换实用程序

毫秒

构建状态加入 Spectrum 社区

使用这个包可以轻松地将各种时间格式转换为毫秒。

个例子

ms('2 天') //172800000

ms('1d') //86400000

ms('10h') //36000000

ms('2.5 小时') //9000000

ms('2h') //7200000

ms('1m') // 60000

ms('5s') // 5000

ms('1y') //31557600000

毫秒('100')// 100

ms('-3 天') // -259200000

ms('-1h') // -3600000

ms('-200') // -200

从毫秒转换

毫秒(60000)//“1m”

毫秒(2 * 60000)//“2m”

吸(\p * 60,000)//“叔叔”

ms(ms('10 hours')) // "10h"

时间格式写出

ms(60000, { long: true }) // "1 分钟"

毫秒(2 \ * 60000,{长:真

...

在 GitHub 上查看

它被 Github 上超过 5m 个存储库使用。

安全缓冲器

这个包的目标是为 node.jsBuffer提供一个安全的替代品。

GitHub 徽标feross/安全缓冲区

更安全的 Node.js 缓冲区 API

安全缓冲区travisnpm下载javascript 样式指南

更安全的 Node.js 缓冲区 API

在所有 Node.js 版本中使用新的 Node.js 缓冲区 API(Buffer.fromBuffer.alloc``Buffer.allocUnsafeBuffer.allocUnsafeSlow)。

在可用时使用内置实现。

安装

npm install safe-buffer

用法

这个包的目标是为 node.jsBuffer提供一个安全的替代品。

它是Buffer的直接替代品。您可以通过在 node.js 模块顶部添加一行require来使用它:

var Buffer \u003d require('safe-buffer').Buffer

// 现有的缓冲区代码将继续工作而不会出现问题:

新缓冲区('嘿','utf8')

新缓冲区([1, 2, 3], 'utf8')

新缓冲区(对象)

new Buffer(16) // 创建一个未初始化的缓冲区(可能不安全)

// 但是您可以使用这些新的显式 API 来明确您想要什么:

缓冲区.from(

...

在 GitHub 上查看

节点服务器

npm使用的 Node 语义版本解析器

GitHub 徽标npm/节点服务器

节点的 semver 解析器(一个 npm 使用)

semver(1) -- npm 的语义版本器

安装

npm 安装 semver

用法

作为节点模块:

const semver \u003d 要求('semver')

semver.valid('1.2.3') // '1.2.3'

semver.valid('a.b.c') // null

semver.clean(' u003dv1.2.3 ') // '1.2.3'

semver.satisfies('1.2.3', '1.x || >u003d2.5.0 || 5.0.0 - 7.2.3') // true

semver.gt('1.2.3', '9.8.7') // 假

semver.lt('1.2.3', '9.8.7') // 真

semver.minVersion('>u003d1.0.0') // '1.0.0'

semver.valid(semver.coerce('v2')) // '2.0.0'

semver.valid(semver.coerce('42.6.7.9.3-alpha')) // '42.6.7'

如果您想最小化您的足迹,您也可以只为您关心的功能加载模块。

// 一次性加载整个 API

...

在 GitHub 上查看

它被 Github 上超过 4.8m 的存储库使用。

哑剧数据库

所有 mime 类型的数据库。它仅包含一个不包含任何逻辑的公共 JSON 文件。

它汇总了以下来源的数据:

  • http://www.iana.org/assignments/media-types/media-types.xhtml

  • http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types

  • http://hg.nginx.org/nginx/raw-file/default/conf/mime.types

GitHub 徽标jshttp/mime-db

媒体类型数据库

哑剧数据库

NPM 版本NPM 下载节点.js 版本构建状态覆盖状态

这是一个包含所有 mime 类型的数据库 它由一个公共 JSON 文件组成,并且不包含任何允许它使用 API 尽可能保持独立的逻辑它聚合来自以下来源的数据:

  • http://www.iana.org/assignments/media-types/media-types.xhtml

  • http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types

  • http://hg.nginx.org/nginx/raw-file/default/conf/mime.types

安装

npm 安装 mime-db

数据库下载

如果您足够疯狂地在浏览器中使用它,您可以使用jsDelivr获取 JSON 文件。建议将master替换为发布标签,因为 JSON 格式将来可能会更改。

https://cdn.jsdelivr.net/gh/jshttp/mime-db@master/db.json

用途

var db \u003d 要求('mime-db')

// 抓取 .js 文件的数据

var data \u003d db['应用程序/javascript']

数据结构

JSON 文件是小写 mime 类型的映射查找。每种 mime 类型具有以下属性:

  • .source- 定义 mime 类型的位置 如果未设置,它可能是自定义媒体类型

*apache-...

在 GitHub 上查看

它被 Github 上超过 4.8m 的存储库使用。

QS

具有嵌套支持的查询字符串解析和字符串化库。

GitHub 徽标ljharb/qs

具有嵌套支持的查询字符串解析器

qs版本徽章

构建状态依赖状态dev依赖状态许可证下载

npm 徽章

一个查询字符串解析和字符串化库,增加了一些安全性。

主要维护者:Jordan Harband

qs 模块最初由TJ Holowaychuk创建和维护。

用途

var qs \u003d 要求('qs');

var assert \u003d require('assert');

var obj \u003d qs.parse('au003dc');

assert.deepEqual(obj, { a: 'c' });

var str \u003d qs.stringify(obj);

assert.equal(str, 'au003dc');

解析对象

qs.parse(string, [options]);

qs 允许您在查询字符串中创建嵌套对象,方法是用方括号[]将子键的名称括起来。例如,字符串'foo[bar]=baz'转换为:

assert.deepEqual(qs.parse('foo[bar]u003dbaz'), {

富:{

酒吧:丁香

}

});

...

在 GitHub 上查看

它被 Github 上超过 4.7m 的存储库使用。

图片来源:

GitHub 博客

.ltag__user__id__268806.follow-action-button { background-color: #93656!important;颜色:#ffffff!重要;边框颜色:#93656!重要; }[

cooldashing24 图片

](/cooldashing24)

毗湿奴丹瓦拉

地球上目前居住在印度🇮🇳的人类。 MeshWorld 的创始人,网络极客,行业经验丰富的网络开发人员和导师/讲师,目前居住在苏拉特市。

twitter 标志vishnudamwalagithub 标志cooldashing24外部链接图标http: //vishnudamwala.netlify.com/

Logo

ModelScope旨在打造下一代开源的模型即服务共享平台,为泛AI开发者提供灵活、易用、低成本的一站式模型服务产品,让模型应用更简单!

更多推荐