百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

现代流行的 npm包大全(上)

liuian 2025-02-07 18:22 44 浏览

大家好,我是Echa。

在我们繁忙的日程和紧迫的项目期限内,选择能够提高工作效率的工具,就显得至关重要。那作为程序员开发包管理工具那是必不可少的。

小编记得2020年3月17日,Github宣布收购npm,GitHub现在已经保证npm将永远免费。

今天我们聊聊NPM。若Node.js没有NPM,会怎样呢?

小编一句话概括:npm 之于 Node.js ,就像 pip 之于 Python, gem 之于 Ruby, pear 之于 PHP ,JDK 之于 Java。

由于内容有点多,现代流行的 npm包大全 分上下两篇

全文大纲

  1. NPM介绍
  2. 前端框架npm 集合
  3. 样式框架npm 集合
  4. 后端框架npm 集合
  5. CORS和请求 npm 集合
  6. API 服务 npm 集合
  7. Web sockets npm 集合
  8. 记录器npm集合
  9. 数据库工具npm集合
  10. 安全认证工具npm集合
  11. 配置模块npm集合
  12. 静态网站生成器npm集合
  13. 模板语言npm集合
  14. 图像处理npm集合
  15. 日期格式npm集合
  16. 数据生成器npm集合
  17. 验证者npm集合
  18. 表格和电子邮件npm集合
  19. 测试工具npm集合
  20. 网页抓取和自动化npm集合
  21. Linters 和格式化程序npm集合
  22. 模块打包器和最小化器npm集合
  23. 流程管理器和运行器npm集合
  24. CLI 和调试器npm集合
  25. 实用程序npm集合
  26. 系统模块npm集合
  27. 其他npm集合

NPM

官网地址:http://www.npmjs.com

Gihub:https://github.com/npm/npm

NPM 是 Node.js 的包管理工具( Node package manager)。能解决NodeJS代码部署上的很多问题。常见的使用场景有以下几种:

  • 允许用户从NPM服务器下载别人编写的第三方包到本地使用。
  • 允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。
  • 允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。

NPM为开发者们打开了整个JavaScript的世界。它是世界上最大的软件注册机构,每周下载量约为30亿次。该注册表包含600,000多个包(构建代码块)。

如下图:

前端框架npm 集合

  1. React

npm 地址:
https://www.npmjs.com/package/react

React 使用虚拟 DOM 将页面的各个部分作为单独的组件进行管理,允许我们在不刷新整个页面的情况下刷新组件。通常与 React-dom 和 React-router-dom 一起使用。

安装

npm i react

案例

import { useState } from 'react';
import { createRoot } from 'react-dom/client';

function Counter() {
  const [count, setCount] = useState(0);
  return (
    <>
      

{count}

); } const root = createRoot(document.getElementById('root')); root.render();

如下图:

  1. Vue

npm 地址:
https://www.npmjs.com/package/vue

Vue 专注于使编写 Web 应用程序更快、更容易、更愉快的特性。它有很棒的文档。通常与 Vue-router 和 Vuex 一起使用。

安装

npm i vue

如下图:

  1. Svelte

npm 地址:
https://www.npmjs.com/package/svelte

Svelte 是一种构建 Web 应用程序的新方法。它是一个编译器,它获取你的声明性组件并将它们转换为高效的 JavaScript,从而通过手术方式更新 DOM。

其他值得注意的框架包括 Angular、Ember、Backbone、Preact 等。你可以用它们中的任何一个来创造奇迹,黄金法则是提前学习现代 JS(ES6 及更高版本)。

安装

npm i svelte

如下图:

样式框架npm 集合

  1. Bootstrap

npm 地址:
https://www.npmjs.com/package/bootstrap

世界上最流行的UI框架,用于构建响应式、移动优先的网站。直观且功能强大,但体积相对较大。许多现代 UI 工具包都基于它,例如 React Bootstrap 或 Reactstrap。

安装

npm i bootstrap

如下图:


  1. Tailwind

npm 地址:
https://www.npmjs.com/package/tailwindcss

用于快速 UI 开发的低级、实用程序优先的 CSS 框架。从头开始构建,可定制。

安装

npm i tailwindcss

如下图:


  1. Styled-components

npm 地址:
https://www.npmjs.com/package/styled-components

CSS-in-JS 工具,弥合了组件和样式之间的差距,提供了许多功能,让我们以功能性和可重用的方式启动和运行样式化组件。

其他出色的解决方案包括 Foundation、Bulma、Materialize 和 Ant Design。如果喜欢写 Vanilla CSS,我们可以使用一些 CSS 扩展语言,比如 SASS,来扩展它的特性。

安装

npm i styled-components

如下图:



后端框架npm 集合

  1. Express

npm 地址:
https://www.npmjs.com/package/express

用于 Node.js 的快速、独立、简约的 Web 框架。它相对较小,具有许多可用作插件的功能。通常被称为 Node.js 的标准服务器框架。

安装

npm i  express

案例

const express = require('express')
const app = express()

app.get('/', function (req, res) {
  res.send('Hello World')
})

app.listen(3000)

如下图:


  1. Hapi

npm 地址:
https://www.npmjs.com/package/@hapi/hapi

Hapi 最初用于 Express 框架。使用 Hapi,我们可以构建功能强大、可扩展的应用程序,而且开销最小,而且功能齐全,开箱即用。安装

npm i  @hapi/hapi

如下图:


  1. Sails

npm 地址:
https://www.npmjs.com/package/sails

Sails 是 Node.js 最流行的 MVC 框架,支持现代应用程序的要求:具有可扩展、面向服务架构的数据驱动 API。

与前端框架一样,也有很多后端替代方案,例如 Adonis 和 Koa。选择一个满足您需求的工具,然后学习它。

npm i  sails

如下图:


CORS和请求 npm 集合

  1. Cors

npm 地址:
https://www.npmjs.com/package/cors

一个Node.js 中间件,用于提供 Connect/Express 中间件,可用于启用具有各种选项的跨域资源共享。

npm i  cors

案例

var express = require('express')
var cors = require('cors')
var app = express()
 
app.use(cors())
 
app.get('/products/:id', function (req, res, next) {
  res.json({msg: 'This is CORS-enabled for all origins!'})
})
 
app.listen(80, function () {
  console.log('CORS-enabled web server listening on port 80')
})

如下图:


  1. Axios

npm 地址:
https://www.npmjs.com/package/axios

用于浏览器和 Node.js 的基于 Promise 的 HTTP 客户端。与 JS 内置的 Fetch API 相比,它易于设置、直观且简化了很多东西。

npm i  axios

案例

import axios from 'axios';
//const axios = require('axios'); // legacy way

// Make a request for a user with a given ID
axios.get('/user?ID=12345')
  .then(function (response) {
    // handle success
    console.log(response);
  })
  .catch(function (error) {
    // handle error
    console.log(error);
  })
  .finally(function () {
    // always executed
  });

// Optionally the request above could also be done as
axios.get('/user', {
    params: {
      ID: 12345
    }
  })
  .then(function (response) {
    console.log(response);
  })
  .catch(function (error) {
    console.log(error);
  })
  .finally(function () {
    // always executed
  });

// Want to use async/await? Add the `async` keyword to your outer function/method.
async function getUser() {
  try {
    const response = await axios.get('/user?ID=12345');
    console.log(response);
  } catch (error) {
    console.error(error);
  }
}

如下图:

  1. Body-parser

npm 地址:
https://www.npmjs.com/package/body-parser

正文解析中间件,它提取传入请求流的整个正文部分并将其公开在 req.body 上,作为更易于交互的东西。

npm i body-parser

案例

var express = require('express')
var bodyParser = require('body-parser')

var app = express()

// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }))

// parse application/json
app.use(bodyParser.json())

app.use(function (req, res) {
  res.setHeader('Content-Type', 'text/plain')
  res.write('you posted:\n')
  res.end(JSON.stringify(req.body, null, 2))
})

如下图:


API 服务 npm 集合

  1. Restify

npm 地址:
https://www.npmjs.com/package/restify

一个 Node.js Web 服务框架,经过优化,可构建语义正确的 RESTful Web 服务,以供大规模生产使用。Restify 针对自身和性能进行了优化。

npm i restify

案例

//Server
var restify = require('restify');

const server = restify.createServer({
  name: 'myapp',
  version: '1.0.0'
});

server.use(restify.plugins.acceptParser(server.acceptable));
server.use(restify.plugins.queryParser());
server.use(restify.plugins.bodyParser());

server.get('/echo/:name', function (req, res, next) {
  res.send(req.params);
  return next();
});

server.listen(8080, function () {
  console.log('%s listening at %s', server.name, server.url);
});

//Client
var assert = require('assert');
var clients = require('restify-clients');

var client = clients.createJsonClient({
  url: 'http://localhost:8080',
  version: '~1.0'
});

client.get('/echo/mark', function (err, req, res, obj) {
  assert.ifError(err);
  console.log('Server returned: %j', obj);
});

如下图:


  1. GraphQL

npm 地址:
https://www.npmjs.com/package/graphql

API 的查询语言和使用现有数据完成这些查询的运行时。提供 API 中数据的完整描述,让客户能够准确地询问他们需要什么。

npm i graphql

案例

var source = '{ hello }';

graphql({ schema, source }).then((result) => {
  // Prints
  // {
  //   data: { hello: "world" }
  // }
  console.log(result);
});

如下图:


Web sockets npm 集合

  1. Socket.io

npm 地址:
https://www.npmjs.com/package/socket.io

Socket.IO 支持实时、双向和基于事件的通信。它适用于所有平台、浏览器或设备,同样注重可靠性和速度。

npm i socket.io

案例

const server = require('http').createServer();
const io = require('socket.io')(server);
io.on('connection', client => {
  client.on('event', data => { /* … */ });
  client.on('disconnect', () => { /* … */ });
});
server.listen(3000);

如下图:


  1. WS

npm 地址:
https://www.npmjs.com/package/ws

简单易用、快速且经过全面测试的 WebSocket 客户端和服务器实现。双向和基于事件的通信。它适用于所有平台、浏览器或设备,同样注重可靠性和速度。

npm i ws

案例

import WebSocket from 'ws';

const ws = new WebSocket('ws://www.host.com/path');

ws.on('error', console.error);

ws.on('open', function open() {
  ws.send('something');
});

ws.on('message', function message(data) {
  console.log('received: %s', data);
});

如下图:


记录器npm集合

  1. Morgan

npm 地址:
https://www.npmjs.com/package/morgan

具体来说,它是一个 HTTP 请求记录器,用于存储 HTTP 请求并让我们简要了解应用程序的使用方式以及可能存在的错误。

npm i morgan

案例

var express = require('express')
var morgan = require('morgan')
 
var app = express()
 
app.use(morgan('combined'))
 
app.get('/', function (req, res) {
  res.send('hello, world!')
})

如下图:


  1. Winston

npm 地址:
https://www.npmjs.com/package/winston

几乎所有内容的记录器,支持多种运输方式。比 Morgan 存在的时间更长,它还拥有更大的维护者社区和更多的下载量。

npm i winston

案例

const winston = require('winston');

const logger = winston.createLogger({
  level: 'info',
  format: winston.format.json(),
  defaultMeta: { service: 'user-service' },
  transports: [
    //
    // - Write all logs with importance level of `error` or less to `error.log`
    // - Write all logs with importance level of `info` or less to `combined.log`
    //
    new winston.transports.File({ filename: 'error.log', level: 'error' }),
    new winston.transports.File({ filename: 'combined.log' }),
  ],
});

//
// If we're not in production then log to the `console` with the format:
// `${info.level}: ${info.message} JSON.stringify({ ...rest }) `
//
if (process.env.NODE_ENV !== 'production') {
  logger.add(new winston.transports.Console({
    format: winston.format.simple(),
  }));
}

如下图:


数据库工具npm集合

  1. Mongoose

npm 地址:
https://www.npmjs.com/package/mongoose

Mongoose 是一个 MongoDB 对象建模工具,旨在在异步环境中工作。Mongoose 支持 Promise 和回调。

npm i mongoose

案例

import { createRequire } from "https://deno.land/std/node/module.ts";
const require = createRequire(import.meta.url);

const mongoose = require('mongoose');

mongoose.connect('mongodb://127.0.0.1:27017/test')
  .then(() => console.log('Connected!'));

如下图:


  1. Sequelize

npm 地址:
https://www.npmjs.com/package/sequelize

Sequelize 是一个基于 Promise 的 Node.js ORM,适用于 Postgres、MySQL、MariaDB、SQLite 和 Microsoft SQL Server。它具有可靠的事务支持、关系、急切和延迟加载、读取复制等。

npm i sequelize

如下图:


安全认证工具npm集合

  1. Passport

npm 地址:
https://www.npmjs.com/package/passport

Passport 的目的是通过称为策略的可扩展插件集对请求进行身份验证。我们向 Passport 提供身份验证请求,而 Passport 提供挂钩来控制身份验证成功或失败时发生的情况。

npm i passport

案例

passport.use(new LocalStrategy(
  function(username, password, done) {
    User.findOne({ username: username }, function (err, user) {
      if (err) { return done(err); }
      if (!user) { return done(null, false); }
      if (!user.verifyPassword(password)) { return done(null, false); }
      return done(null, user);
    });
  }
));

如下图:


  1. Bcrypt

npm 地址:
https://www.npmjs.com/package/bcrypt

帮助我们散列密码的库。Bcrypt 是 Niels Provos 和 David Mazières 设计的密码散列函数,基于 Blowfish 密码并于 1999 年在 USENIX 上提出。

npm i bcrypt

案例

const bcrypt = require('bcrypt');
const saltRounds = 10;
const myPlaintextPassword = 's0/\/\P4$$w0rD';
const someOtherPlaintextPassword = 'not_bacon';
bcrypt.genSalt(saltRounds, function(err, salt) {
    bcrypt.hash(myPlaintextPassword, salt, function(err, hash) {
        // Store hash in your password DB.
    });
});

如下图:


  1. JSONWebToken

npm 地址:
https://www.npmjs.com/package/jsonwebtoken

JSON Web 令牌 (JWT) 是一种开放的行业标准 RFC 7519 方法,用于在两方之间安全地表示声明。这个包允许我们解码、验证和生成 JWT。

npm i jsonwebtoken

案例

// sign with RSA SHA256
var privateKey = fs.readFileSync('private.key');
var token = jwt.sign({ foo: 'bar' }, privateKey, { algorithm: 'RS256' });

如下图:


配置模块npm集合

  1. Config

npm 地址:
https://www.npmjs.com/package/config

设置存储在应用程序的配置文件中,可以被环境变量、命令行参数或外部源覆盖和扩展。

npm i config

案例

{
  "Customer": {
    "dbConfig": {
      "host": "prod-db-server"
    },
    "credit": {
      "initialDays": 30
    }
  }
}

const config = require('config');
//...
const dbConfig = config.get('Customer.dbConfig');
db.connect(dbConfig, ...);

if (config.has('optionalFeature.detail')) {
  const detail = config.get('optionalFeature.detail');
  //...
}

如下图:


  1. Dotenv

npm 地址:
https://www.npmjs.com/package/dotenv

它一个零依赖模块,将环境变量从 .env 文件加载到 process.env 中。

npm i dotenv

案例

S3_BUCKET="YOURS3BUCKET"
SECRET_KEY="YOURSECRETKEYGOESHERE"

require('dotenv').config()
console.log(process.env) // remove this after you've confirmed it is working

如下图:


静态网站生成器npm集合

  1. Gatsby

npm 地址:
https://www.npmjs.com/package/gatsby

现代网站生成器,可创建快速、高质量、动态的 React 应用程序,从博客到电子商务网站再到用户仪表板。很棒的插件生态系统和模板。

npm i gatsby

如下图:


  1. NextJS

npm 地址:
https://www.npmjs.com/package/next

NextJS 首先支持服务器渲染以及静态生成的内容。我们还可以将无服务器函数定义为 API 端点。

npm i next

如下图:


  1. NuxtJS

npm 地址:
https://www.npmjs.com/package/nuxt

NuxtJS 基本上是 Vue 生态系统中的 NextJS 替代品。NuxtJS 的目标是让 Web 开发功能强大且性能卓越。

npm i nuxt

如下图:



模板语言npm集合

  1. Mustache

npm 地址:
https://www.npmjs.com/package/mustache

Mustache 是一种无逻辑的模板语法。它可以用于 HTML、配置文件、源代码——任何东西。它通过使用散列或对象中提供的值扩展模板中的标签来工作。

npm i mustache

案例

var view = {
  title: "Joe",
  calc: function () {
    return 2 + 4;
  }
};

var output = Mustache.render("{{title}} spends {{calc}}", view);

如下图:


  1. Handlebars

npm 地址:
https://www.npmjs.com/package/handlebars

使用模板和输入对象来生成 HTML 或其他文本格式。Handlebars 模板看起来像带有嵌入式 Handlebars 表达式的常规文本。Handlebars 在很大程度上与 Mustache 模板兼容。

npm i handlebars

案例

var source = "

Hello, my name is {{name}}. I am from {{hometown}}. I have " + "{{kids.length}} kids:

" + "
    {{#kids}}
  • {{name}} is {{age}}
  • {{/kids}}
"; var template = Handlebars.compile(source); var data = { "name": "Alan", "hometown": "Somewhere, TX", "kids": [{"name": "Jimmy", "age": "12"}, {"name": "Sally", "age": "4"}]}; var result = template(data); // Would render: //

Hello, my name is Alan. I am from Somewhere, TX. I have 2 kids:

//
    //
  • Jimmy is 12
  • //
  • Sally is 4
  • //

如下图:


  1. EJS

npm 地址:
https://www.npmjs.com/package/ejs

EJS 是一种简单的模板语言,可让我们使用纯 JavaScript 生成 HTML 标记,语法简单、执行速度快、调试方便。EJS 拥有庞大的活跃用户社区,并且该库正在积极开发中。

npm i ejs

案例

<% if (user) { %>
  

<%= user.name %>

<% } %>

如下图:


图像处理npm集合

  1. Sharp

npm 地址:
https://www.npmjs.com/package/sharp

一个很棒的模块,可以将常见格式的大图像转换为更小的、对网络友好的 JPEG、PNG 和不同尺寸的 WebP 图像。

npm i sharp

案例

<% if (user) { %>
  

<%= user.name %>

<% } %>

如下图:


  1. GM

npm 地址:
https://www.npmjs.com/package/gm

借助 Node.js 模块 GM,我们可以直接在代码中使用两种流行的工具来创建、编辑、合成和转换图像 - GraphicsMagick 和 ImageMagick。

npm i gm

案例

如下图:


  1. Cloudinary

npm 地址:
https://www.npmjs.com/package/cloudinary

专用模块可简化云服务的工作,为 Web 应用程序的整个图像管理管道提供解决方案。

npm i cloudinary

案例

cloudinary.v2.uploader.upload("/home/my_image.jpg", {upload_preset: "my_preset"}, (error, result)=>{
  console.log(result, error);
});

如下图:


最后

一台电脑,一个键盘,尽情挥洒智慧的人生;

几行数字,几个字母,认真编写生活的美好;

一 个灵感,一段程序,推动科技进步,促进社会发展。

创作不易,喜欢的老铁们加个关注,点个赞,打个赏,后面会不定期更新干货和技术相关的资讯,速速收藏,谢谢!你们的一个小小举动就是对小编的认可,更是创作的动力。

相关推荐

联想win7下载链接(联想win7oem原版下载)

如果你想在联想小新win7上下载AMD软件,首先要确定你要下载的是哪款软件。然后,你可以前往AMD官方网站,在网站上搜索该软件并下载。在下载完成后,双击安装该软件即可。另外,你也可以通过第三方软件下载...

三星笔记本电脑售后服务维修中心

您可以通过以下方式查询附近的三星售后服务点:访问三星官方网站,在网站首页选择“售后服务”选项,然后选择“售后服务网点查询”,在弹出的页面中选择所在省份和城市,即可查询附近的售后服务网点。在手机应用商店...

电脑重装系统后没有声音怎么解决

电脑重装系统后没有声音,可能是声卡驱动未安装、声卡驱动不兼容或者声音相关服务未开启等原因。解决方法可以尝试重新安装声卡驱动、更新驱动程序软件或者打开声音相关设置。如果问题仍然存在,建议寻求专业人士的...

word2007安装产品密钥(安装office2010产品密钥)

可以通过以下方式获取Word文档的产品密钥:购买正版Word软件,从官方渠道获得产品密钥。下载并安装MicrosoftOffice,从安装过程中获取产品密钥。请注意,任何未经授权的方式获取...

绝地求生电脑配置要求(绝地求生电脑配置要求2024)
绝地求生电脑配置要求(绝地求生电脑配置要求2024)

绝地求生的最低配置国服官方给出的最低配置是内存6G,CPUInteli3-4340/AMDFX-630,显卡GTX660/HD7850,所有效果最低,但是说实话,这个配置玩起来,体验太差,而且没几局就需要重启客户端,而且GTX6...

2025-12-23 21:05 liuian

安卓仿苹果ios14主题桌面(安卓仿ios14主题全套免费)
  • 安卓仿苹果ios14主题桌面(安卓仿ios14主题全套免费)
  • 安卓仿苹果ios14主题桌面(安卓仿ios14主题全套免费)
  • 安卓仿苹果ios14主题桌面(安卓仿ios14主题全套免费)
  • 安卓仿苹果ios14主题桌面(安卓仿ios14主题全套免费)
亲手自己重装系统win7(自己怎么重装win7)

要一键安装重装系统Win7,您可以使用Windows7安装盘或USB驱动器。首先,将安装盘或USB插入计算机,并重启计算机。然后,在计算机启动时按下相应的按键(通常是F12或Del键)进入启动菜单。...

windows7旗舰版临时激活(win7暂时激活)

关于这个问题,目前,有几种方法可以激活Windows7旗舰版,以下是最简单的几种方法:1.使用激活工具:可以使用一些第三方激活工具,如KMSpico、MicrosoftToolkit等工具来激活...

免费查序列号入口(免费查序列号入口平板)

苹果查序列号入口可登陆苹果官网checkcoverage.apple.com进行查询,具体步骤如下:1、打开手机设置,点击“通用”;2、进入页面后点击“关于本机”;3、页面跳转后,我们就可以看到本机的...

磁盘被保护了如何取消保护(磁盘被保护了如何取消保护设置)

1、打开磁盘分区管理窗口中选择要去掉被写保护的磁盘。2、选中磁盘后单击鼠标右键可显示出选项列表下选择属性。3、打开磁盘属性对话框中选择点击硬件选项卡。4、然后在硬件页面中选中所有磁盘后再单击属性按钮。...

win7系统硬盘分区教程(win7如何对硬盘分区)

在Win7中,你可以使用磁盘管理工具来给硬盘分区。首先,打开控制面板,点击“系统和安全”,然后选择“管理工具”。在管理工具中,找到“计算机管理”,点击打开。在计算机管理窗口中,选择“磁盘管理”。在磁盘...

电脑不识别移动硬盘怎么办(笔记本电脑不识别移动硬盘怎么办)

电脑无法识别移动硬盘的原因有很多,以下是一些可能的原因和相应的解决方法:1.USB供电不足:移动硬盘功率较大,可能需要更多的电压。前置USB接口可能无法提供足够的电压。解决方法是将移动硬盘接到...

cf穿越火线烟雾头盔怎么调(cf的最新烟雾头盔怎么调)

cf新版烟雾保护头盔调置:?cf这款游戏中,更新后调整烟雾头的方法是打开NVIDIA控制面板,在NVIDIA控制面板中选择调整视频颜色设置,接着点击通过NVIDIA设置选项,然后将亮度调整到79%,对...

u盘怎样格式化最安全(u盘怎么格式化最干净)

只需将U盘插入到电脑之后,然后在我的电脑中找到U盘的盘符,使用鼠标右键点击打开菜单,其中就可以看到【格式化】的选项,根据需要选择然后点击【快速格式化】即可U盘格式是FAT32格式,那么其传输速度会明显...

移动路由器怎么改wifi密码(移动网络路由器怎么改密码wifi密码)
移动路由器怎么改wifi密码(移动网络路由器怎么改密码wifi密码)

1.打开手机设置,找到wifi点击进入,点击已连接的wifi。2.里面有一个路由器的选项,记住路由器后面一串数字。3.打开手机网页,在地址栏输入刚记住的那串数字,点击进入,选择继续访问网页版,输入管理员密码,点击确定。4.点击路由设置,点击...

2025-12-23 16:05 liuian