NPM 包管理

NPM

Node 包管理工具(node package manager,NPM)提供了数十万个可重用的工具包。它还提供了一流的依赖解决方案,可实现自动化工具链构建。

NPM 包查询 npmjs.com

npm 命令

查看npm的版本: npm -v

npm -v
9.5.1

查看所有模块的版本: npm version

 npm version
{
  'first-express-project': '1.0.0',
  npm: '9.5.1',
  node: '18.16.0',
  acorn: '8.8.2',
  ada: '1.0.4',
  ares: '1.19.0',
  brotli: '1.0.9',
  cldr: '42.0',
  icu: '72.1',
  llhttp: '6.0.10',
  modules: '108',
  napi: '8',
  nghttp2: '1.52.0',
  nghttp3: '0.7.0',
  ngtcp2: '0.8.1',
  openssl: '3.0.8+quic',
  simdutf: '3.2.2',
  tz: '2022g',
  undici: '5.21.0',
  unicode: '15.0',
  uv: '1.44.2',
  uvwasi: '0.0.15',
  v8: '10.2.154.26-node.26',
  zlib: '1.2.13'
}

查看所有版本: npm view 包名 versions 查看最高版本: npm view 包名 version

npm view express versions
[
  '0.14.0',        '0.14.1',        '1.0.0-beta',    '1.0.0-beta2',
  '1.0.0-rc',      '1.0.0-rc2',     '1.0.0-rc3',     '1.0.0-rc4',
  '1.0.0',         '1.0.1',         '1.0.2',         '1.0.3',
  '1.0.4',         '1.0.5',         '1.0.6',         '1.0.7',
  '1.0.8',         '2.0.0-beta',    '2.0.0-beta2',   '2.0.0-beta3',
  '2.0.0-rc',      '2.0.0-rc2',     '2.0.0-rc3',     '2.0.0',
  '2.1.0',         '2.1.1',         '2.2.0',         '2.2.1',
  '2.2.2',         '2.3.0',         '2.3.1',         '2.3.2',
  '2.3.3',         '2.3.4',         '2.3.5',         '2.3.6',
  '2.3.7',         '2.3.8',         '2.3.9',         '2.3.10',
  '2.3.11',        '2.3.12',        '2.4.0',         '2.4.1',
  '2.4.2',         '2.4.3',         '2.4.4',         '2.4.5',
  '2.4.6',         '2.4.7',         '2.5.0',         '2.5.1',
  '2.5.2',         '2.5.3',         '2.5.4',         '2.5.5',
  '2.5.6',         '2.5.7',         '2.5.8',         '2.5.9',
  '2.5.10',        '2.5.11',        '3.0.0-alpha1',  '3.0.0-alpha2',
  '3.0.0-alpha3',  '3.0.0-alpha4',  '3.0.0-alpha5',  '3.0.0-beta1',
  '3.0.0-beta2',   '3.0.0-beta3',   '3.0.0-beta4',   '3.0.0-beta6',
  '3.0.0-beta7',   '3.0.0-rc1',     '3.0.0-rc2',     '3.0.0-rc3',
  '3.0.0-rc4',     '3.0.0-rc5',     '3.0.0',         '3.0.1',
  '3.0.2',         '3.0.3',         '3.0.4',         '3.0.5',
  '3.0.6',         '3.1.0',         '3.1.1',         '3.1.2',
  '3.2.0',         '3.2.1',         '3.2.2',         '3.2.3',
  '3.2.4',         '3.2.5',         '3.2.6',         '3.3.0',
  '3.3.1',         '3.3.2',         '3.3.3',         '3.3.4',
  '3.3.5',         '3.3.6',         '3.3.7',         '3.3.8',
  '3.4.0',         '3.4.1',         '3.4.2',         '3.4.3',
  '3.4.4',         '3.4.5',         '3.4.6',         '3.4.7',
  '3.4.8',         '3.5.0',         '3.5.1',         '3.5.2',
  '3.5.3',         '3.6.0',         '3.7.0',         '3.8.0',
  '3.8.1',         '3.9.0',         '3.10.0',        '3.10.1',
  '3.10.2',        '3.10.3',        '3.10.4',        '3.10.5',
  '3.11.0',        '3.12.0',        '3.12.1',        '3.13.0',
  '3.14.0',        '3.15.0',        '3.15.1',        '3.15.2',
  '3.15.3',        '3.16.0',        '3.16.1',        '3.16.2',
  '3.16.3',        '3.16.4',        '3.16.5',        '3.16.6',
  '3.16.7',        '3.16.8',        '3.16.9',        '3.16.10',
  '3.17.0',        '3.17.1',        '3.17.2',        '3.17.3',
  '3.17.4',        '3.17.5',        '3.17.6',        '3.17.7',
  '3.17.8',        '3.18.0',        '3.18.1',        '3.18.2',
  '3.18.3',        '3.18.4',        '3.18.5',        '3.18.6',
  '3.19.0',        '3.19.1',        '3.19.2',        '3.20.0',
  '3.20.1',        '3.20.2',        '3.20.3',        '3.21.0',
  '3.21.1',        '3.21.2',        '4.0.0-rc1',     '4.0.0-rc2',
  '4.0.0-rc3',     '4.0.0-rc4',     '4.0.0',         '4.1.0',
  '4.1.1',         '4.1.2',         '4.2.0',         '4.3.0',
  '4.3.1',         '4.3.2',         '4.4.0',         '4.4.1',
  '4.4.2',         '4.4.3',         '4.4.4',         '4.4.5',
  '4.5.0',         '4.5.1',         '4.6.0',         '4.6.1',
  '4.7.0',         '4.7.1',         '4.7.2',         '4.7.3',
  '4.7.4',         '4.8.0',         '4.8.1',         '4.8.2',
  '4.8.3',         '4.8.4',         '4.8.5',         '4.8.6',
  '4.8.7',         '4.8.8',         '4.9.0',         '4.9.1',
  '4.9.2',         '4.9.3',         '4.9.4',         '4.9.5',
  '4.9.6',         '4.9.7',         '4.9.8',         '4.10.0',
  '4.10.1',        '4.10.2',        '4.10.3',        '4.10.4',
  '4.10.5',        '4.10.6',        '4.10.7',        '4.10.8',
  '4.11.0',        '4.11.1',        '4.11.2',        '4.12.0',
  '4.12.1',        '4.12.2',        '4.12.3',        '4.12.4',
  '4.13.0',        '4.13.1',        '4.13.2',        '4.13.3',
  '4.13.4',        '4.14.0',        '4.14.1',        '4.15.0',
  '4.15.1',        '4.15.2',        '4.15.3',        '4.15.4',
  '4.15.5',        '4.16.0',        '4.16.1',        '4.16.2',
  '4.16.3',        '4.16.4',        '4.17.0',        '4.17.1',
  '4.17.2',        '4.17.3',        '4.18.0',        '4.18.1',
  '4.18.2',        '5.0.0-alpha.1', '5.0.0-alpha.2', '5.0.0-alpha.3',
  '5.0.0-alpha.4', '5.0.0-alpha.5', '5.0.0-alpha.6', '5.0.0-alpha.7',
  '5.0.0-alpha.8', '5.0.0-beta.1'
]

npm view express version  
4.18.2

帮助说明: npm

npm 
npm <command>

Usage:

npm install        install all the dependencies in your project
npm install <foo>  add the <foo> dependency to your project
npm test           run this project's tests
npm run <foo>      run the script named <foo>
npm <command> -h   quick help on <command>
npm -l             display usage info for all commands
npm help <term>    search for help on <term>
npm help npm       more involved overview

All commands:

    access, adduser, audit, bugs, cache, ci, completion,
    config, dedupe, deprecate, diff, dist-tag, docs, doctor,
    edit, exec, explain, explore, find-dupes, fund, get, help,
    hook, init, install, install-ci-test, install-test, link,
    ll, login, logout, ls, org, outdated, owner, pack, ping,
    pkg, prefix, profile, prune, publish, query, rebuild, repo,
    restart, root, run-script, search, set, shrinkwrap, star,
    stars, start, stop, team, test, token, uninstall, unpublish,
    unstar, update, version, view, whoami

Specify configs in the ini-formatted file:
    /Users/jwdmac2/.npmrc
or on the command line via: npm <command> --key=value

More configuration info: npm help config
Configuration fields: npm help 7 config

npm@9.5.1 /usr/local/lib/node_modules/npm

搜索模块包: npm search 包名

npm search express
NAME                      | DESCRIPTION          | AUTHOR          | DATE       
express                   | Fast,…               | =mikeal…        | 2022-10-08 
express-validator         | Express middleware…  | =ctavan…        | 2023-04-16 
path-to-regexp            | Express style path…  | =blakeembrey…   | 2022-05-06 
cors                      | Node.js CORS…        | =dougwilson…    | 2018-11-04 
express-handlebars        | A Handlebars view…   | =ericf =sahat…  | 2023-04-15 
connect-redis             | Redis session store… | =tjholowaychuk… | 2023-05-11 
helmet                    | help secure…         | =adam_baldwin…  | 2023-05-06 
is-regex                  | Is this value a JS…  | =ljharb         | 2021-08-06 
express-session           | Simple session…      | =dougwilson     | 2022-05-11 
express-fileupload        | Simple express file… | =richardgirges… | 2022-05-24 
escape-string-regexp      | Escape RegExp…       | =sindresorhus   | 2021-04-17 
regexp.prototype.flags    | ES6 spec-compliant…  | =ljharb         | 2023-04-19 
multer                    | Middleware for…      | =hacksparrow…   | 2022-05-30 
morgan                    | HTTP request logger… | =dougwilson     | 2020-03-20 
express-rate-limit        | Basic IP…            | =nfriedly       | 2022-11-15 
passport                  | Simple, unobtrusive… | =jaredhanson    | 2022-05-20 
express-http-proxy        | http proxy…          | =villadora…     | 2021-10-26 
express-promise-router    | A lightweight…       | =alex-whitney…  | 2021-11-30 
express-brute             | A brute-force…       | =adampflug      | 2016-10-11 
ignore                    | Ignore is a manager… | =kael           | 2022-12-19

安装包: npm install / i 包名 (i是install简写) 在当前目录安装包

npm i express@next  

added 53 packages, and audited 54 packages in 27s

2 packages are looking for funding
  run `npm fund` for details

3 high severity vulnerabilities

To address issues that do not require attention, run:
  npm audit fix

To address all issues (including breaking changes), run:
  npm audit fix --force

Run `npm audit` for details.

卸载包: npm remove / r 包名 (r是remove简写) npm uninstall 包名

用 npm i 安装的模块要用 npm uninstall i 才卸载掉,不加 i 无法卸载。

npm uninstall i express

removed 53 packages, and audited 1 package in 2s

found 0 vulnerabilities

安装包并添加到生产依赖: npm install 包名 --save / -S (-S是–save的简写)

npm install express-validator --save

安装包并添加到开发依赖: npm install 包名 --save-dev / -D (-D是–save-dev的简写)

npm install eslint --save-dev

当前应用的 package.json 文件中将自动添加以下项目:

  "devDependencies": {
    "eslint": "^5.12.0"
  }

devDependencies里面的包只用于开发环境,不用于生产环境

dependencies是需要发布到生产环境的

安装全局指令: npm install --global / -g (-g是–global的简写) 全局安装的包一般都是一些工具

sudo npm install express -g
Password:

added 58 packages in 16s

8 packages are looking for funding
  run `npm fund` for details

sudo 允许系统管理员让普通用户执行一些或者全部的root命令

升级全部包: npm update

npm update

up to date, audited 1 package in 387ms

found 0 vulnerabilities

升级指定包: npm update 包名

npm update express

up to date, audited 1 package in 249ms

found 0 vulnerabilities

下载当前项目所依赖的包: npm install

npm install

up to date, audited 1 package in 119ms

found 0 vulnerabilities

设置镜像源: npm config set registry 地址

1.临时使用

npm --registry https://registry.npm.taobao.org install express

2.持久使用

npm config set registry https://registry.npm.taobao.org

配置后可通过下面方式来验证是否成功

npm config get registry 或 npm info express

查看项目中已安装: npm ls 查看全局已安装: npm ls -g

npm ls
first-express-project@1.0.0 /Users/jwdmac2/Desktop/2023/web-projects/first-project/first-express-project
└── (empty)

npm ls -g
/usr/local/lib
├── @vue/cli@5.0.8
├── corepack@0.17.0
├── express-generator@4.16.1
├── express@4.18.2
├── nodemon@2.0.22
└── npm@9.5.1


查看项目中依赖所在的目录: npm root

npm root
/Users/jwdmac2/Desktop/2023/web-projects/first-project/first-express-project/node_modules

查看全局安装的依赖所在目录: npm root -g

npm root -g
/usr/local/lib/node_modules

清除npm的缓存: npm cache clean

npm cache clean
npm ERR! As of npm@5, the npm cache self-heals from corruption issues
npm ERR!   by treating integrity mismatches as cache misses.  As a result,
npm ERR!   data extracted from the cache is guaranteed to be valid.  If you
npm ERR!   want to make sure everything is consistent, use `npm cache verify`
npm ERR!   instead.  Deleting the cache can only make npm go slower, and is
npm ERR!   not likely to correct any problems you may be encountering!
npm ERR! 
npm ERR!   On the other hand, if you're debugging an issue with the installer,
npm ERR!   or race conditions that depend on the timing of writing to an empty
npm ERR!   cache, you can use `npm install --cache /tmp/empty-cache` to use a
npm ERR!   temporary cache instead of nuking the actual one.
npm ERR! 
npm ERR!   If you're sure you want to delete the entire cache, rerun this command
npm ERR!   with --force.

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/jwdmac2/.npm/_logs/2023-07-06T08_04_31_132Z-debug-0.log

清除项目中没有被使用的依赖: npm prune

npm prune

up to date, audited 1 package in 272ms

found 0 vulnerabilities

打开默认浏览器跳转到github中axios的页面: npm repo axios

npm repo axios

npm i 和 npm install 的区别

npm i 安装的模块及依赖,使用npm uninstall是没有办法删除的,必须使用npm uninstall i才可以删除。

npm i 会检测当前node版本最匹配的npm包版本号,以及相互依赖应该提升的版本号的npm包

部分npm包在当前node版本下无法使用,必须使用建议版本

安装报错时 用 npm intall 会出现 npm-debug.log文件,npm i 不一定

vue add 和 npm install 的区别

vue add可能会改变现有的项目结构,但是npm install仅仅是安装包而不会改变项目的结构

如果你下载的库, 特别是 Ui 库, 希望对脚手架结构产生影响, 那就选择 vue add xxx

如果不希望对脚手架结构产生影响, 只是单纯的使用, 比如 axios 这个插件 那就选择 npm install xxx

npm 常用模块

express

npm install

Express的理念是为HTTP服务器提供小型、强大的工具,使其成为单页应用程序、网站、混合或公共HTTP API的绝佳解决方案。

express-generator

npm install express-generator -g

开始使用express的最快方法是使用可执行express,可以生成一个 Express 应用的“框架”。

eslint

npm install eslint --save-dev

“lint” 是用于对软件进行静态分析的工具,可以发现并报告软件是否遵循某些最佳编程惯例。

eslint-config-standard

npm install --save-dev eslint-config-standard eslint-plugin-promise eslint-plugin-import eslint-plugin-n

用于JavaScript标准样式的ESLint可共享配置

eslint-plugin-extra-rules

npm install --save-dev eslint-plugin-extra-rules

esint 的附加规则

eslint-plugin-node

npm install --save-dev eslint eslint-plugin-node

Node.js的附加ESLint规则

Gulp 和 Grunt

运行测试单元或其他外部工具。

nodemon

全局安装

npm install -g nodemon # or using yarn: yarn global add nodemon

作为开发依赖将安装在本地

npm install --save-dev nodemon # or using yarn: yarn add nodemon -D

nodemon最初是为了重新启动挂起的进程(如web服务器)而编写的,但现在支持干净退出的应用程序。如果脚本干净地退出,nodemon将继续监视目录,如果有任何更改,则重新启动脚本。

pug

$ npm install pug

Pug是一个高性能模板引擎,深受Haml的影响,并使用Node.js和浏览器的JavaScript实现。

cookie-parser

npm install cookie-parser

提供了访问 cookie 信息的便捷方法。解析Cookie标头,并用Cookie名称键控的对象填充req.cookies。可选地,您可以通过传递一个秘密字符串来启用签名cookie支持,该字符串分配req.secret,以便其他中间件可以使用它。

debug

npm install debug

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

http-errors

npm install http-errors

处理错误中间件。轻松创建Express、Koa、Connect等的HTTP错误。

morgan

npm install morgan

node.js 专用的HTTP请求记录器中间件

path

npm install --save path

它是用于解析文件和目录的核心 node 库。

Mongoose

npm install mongoose

一款为异步工作环境设计的 MongoDB 对象建模工具。

官方文档网站是 mongosejs.com

Waterline

npm install waterline

Waterline是下一代存储和检索引擎,是Sails框架中使用的默认ORM。

它提供了一个统一的API,用于访问不同类型的数据库和协议中的数据。这意味着您可以编写相同的代码来获取和存储用户数据,无论他们生活在MySQL、MongoDB、neDB还是Postgres中。

Bookshelf

Bookshelf 是 Node.js 的 JavaScript ORM,构建在 Knex SQL 查询生成器上。它同时具有基于 Promise 和传统回调接口、事务支持、热切/嵌套热切关系加载、多态关联以及对一对一、一对多和多对多关系的支持。

$ npm install knex
$ npm install bookshelf
 
# Then add one of the following:
$ npm install pg
$ npm install mysql
$ npm install sqlite3

它被设计用于PostgreSQL、MySQL和SQLite3。

Objection

安装两个依赖项
npm i knex -g --save
npm i objection --save

安装一个数据库驱动程序。一些不同的选项可用
npm i pg
npm i sqlite3
npm i mysql
npm i mariasql

以尽可能简单的方式使用 SQL 和底层数据库引擎的全部功能(支持 SQLite3、Postgres 和 MySQL)。

Sequelize

npm install sequelize sqlite3

Sequelize 是一个易于使用且基于 promise 的 Node.js ORM 工具,适用于 Postgres、MySQL、MariaDB、SQLite、DB2、Microsoft SQL Server 和 Snowflake。它具有可靠的事务支持、关系、预先加载和懒加载、复本读取等功能。

Node ORM2

npm install orm

Node ORM2 一款 Node.js 对象关系管理系统。支持 MySQL、SQLite 以及 Progress,可以帮助你用面向对象的方法操作数据库。

async

npm i async

Async是一个实用模块,它为使用异步JavaScript提供了直接、强大的功能。虽然最初设计用于 Node.js 并可通过 npm i async 安装,但它也可以直接在浏览器中使用。

moment

npm i moment

用于解析、验证、操作和格式化日期的JavaScript日期库。

express-validator

npm install express-validator --save

express-validator 是一组 express.js 中间件,它封装了 validator.js 提供的大量验证器和消毒器,来执行表单数据的验证和清理。。

compression

npm install compression

Node.js 压缩中间件。支持以下压缩编码:- deflate - gzip

使用 gzip/deflate 压缩响应文件,可以压缩发送回客户端的 HTTP 响应,从而显着减少客户端获取和加载页面所需的时间。

helmet

npm i helmet

Helmet 通过设置 HTTP 响应标头来帮助保护 Express 应用程序的安全。

express-async-handler

npm i express-async-handler

用于处理异步 express 路由内部异常并将其传递给 express 错误处理程序的简单中间件。

element-ui

npm install element-ui -S
vue add element

Vue.js 2.0 Web用户界面工具包。

element-plus

npm i element-plus
vue add element-plus

Vue.js 3.0 Web用户界面工具包。

router

$ npm install router
vue add router

简单的中间件式路由器

此模块当前是从Express项目中提取的版本,但主要更改是,它可以通过删除Express-specific API调用,与普通 http.createServer 对象或其他 web 框架一起使用。

axios

npm install axios

用于浏览器和 node.js 的基于 promise 的 HTTP 客户端,提供了一系列的API,可以方便地发送GET、POST等类型的请求,并支持设置请求头、超时时间等参数。

multer

$ npm install --save multer

Multer 是一个用于处理文件上传的 node.js 中间件,主要跟 express 框架搭配使用,只支持表单MIME编码为 multipart/form-data 类型的数据请求.

如果要处理其他编码的表单数据可以通过 busboy 或者 formidable 。

cors

$ npm install cors

cors 是一个node.js 包,用于提供 Connect/Express 中间件,该中间件可用于启用具有各种选项的 cors。

主要用来解决客户端请求与服务端的跨域问题,cors中间件配置在服务端,cors由一系列HTTP响应头组成,这个响应头可以决定浏览器是否阻止前端JS代码跨域获取资源,当接口服务器配置了CORS中间件之后,再发起请求时,就会自动配置相应的请求头,进而解除浏览器的跨域访问限制

inflection

npm install inflection

一个将英语字符串转换为其他形式的包,如复数形式、单数形式、camelCase形式等。一般来说,前端请求路径都是小写复数,Model都是大写单数,所以利用这个模块来转为对应的模块名来引入模块。

bcrypt

npm i bcrypt

帮助您散列密码的库。

http-assert

npm i http-assert

针对 HTTP 请求的 assert 断言,我们可以使用 http-assert 这个 npm 包来简化我们的编码。

jsonwebtoken

jsonwebtoken

通过JSON形式作为Web应用中的令牌,用于在各方之间安全地将信息作为JSON对象,安全地传输信息 在数据传输过程中可以对数据进行加密,签名等处理

require-all

npm i require-all

可以帮助我们自动引入指定目录下的所有模块或文件,极大地提高了开发效率。

vue2-editor

npm i vue2-editor

Quill.js 和 Vue.js 提供了一个易于使用但功能强大且可自定义的富文本编辑器,用于 vue2

vue3-editor

npm i vue3-editor

Quill.js 和 Vue.js 提供了一个易于使用但功能强大且可自定义的富文本编辑器,用于 vue3

Swiper Element

  npm install swiper

图片轮播组件 Swiper

dayjs

npm i dayjs

一个轻量的处理时间和日期的 JavaScript 库,和 Moment.js 的 API 设计保持完全一样. 如果您曾经用过 Moment.js, 那么您已经知道如何使用 Day.js

vue-i18n

npm i vue-i18n

Vue.js的国际化插件,可以为项目配置国际化

Nuxt.js

在这里插入代码片

是一个基于 Vue.js 的通用应用框架。一个 React 的服务端渲染应用框架。

http-proxy-middleware

npm install --save-dev http-proxy-middleware

用于将请求代理到其他服务器。它可以将请求转发到同一服务器上的不同端口,或者将请求发送到其他服务器。通过配置,可以实现请求路径的重写、请求头的主机更改等功能,使请求能够被正确地转发到目标服务器。

openapi-generator

npm install openapi-generator -g

是一个完全免费开源的项目,用于生成 REST API 客户端、服务器存根和基于 OpenAPI(以前称为Swagger)规范的文档。

docsify

npm i docsify-cli -g

docsify 用于动态生成文档网站

express-fileupload

npm i express-fileupload

用于上传文件的简单快捷中间件。

md5

npm i md5

一个JavaScript函数,用于使用 MD5 对消息进行散列。

safe-decode-uri-component

npm i safe-decode-uri-component

解码 encodeURI 和 encodeURIComponent 编码的字符串,而不会在无效转义中引发错误。

music-metadata

npm i music-metadata

node.js 的基于流和文件的音乐元数据解析器。支持任何常见的音频和标记格式。包括TypeScript定义。

pac-proxy-agent

npm i pac-proxy-agent

用于 http 和 https 的PAC文件代理 http.Agent 实现

qrcode

npm i qrcode

二维码/条形码生成器。

tunnel

npm i tunnel

节点隧道-用于隧道代理的 http/https 代理

yargs

npm i yargs

通过使用 Node.js 构建功能全面的命令行应用,它能轻松配置命令,解析多个参数,并设置快捷方式等,还能自动生成帮助菜单。

vue-lazyload

npm i vue-lazyload

用于在应用程序中懒加载图像。轻量、功能强大且易于使用,处理任何图像类型。

fastclick

npm i fastclick

用于消除移动浏览器上物理点击和触发点击事件之间300毫秒的延迟。

style-resources-loader

npm i style-resources-loader -D

webpack 的 CSS 处理资源加载器,将样式资源(例如变量、mixin)注入到多个导入的 css、sass、scs、less、stylus 模块中。

vue-cli-plugin-style-resources-loader

npm i vue-cli-plugin-style-resources-loader -D

更容易地将样式资源加载器添加到项目中。

vue-template-compiler

npm i vue-template-compiler -D

用于将 Vue 2.0 模板预编译为渲染函数,以避免运行时编译开销和CSP限制。在大多数情况下,应该将它与 vue-loader 一起使用,只有在编写具有特定需求的构建工具时,才会单独使用它。

@vue/compiler-sfc

npm i @vue/compiler-sfc

在vue3中,vue-template-compiler被剔除了,不需要这个包,而它的替代品是@vue/compiler-sfc

vuetify

npm i vuetify

Vuetify 是 Vue 的语义化组件框架,旨在提供整洁、语义化和可重用的组件,使得构建应用程序更方便。

nanoid

npm i nanoid

Nano ID 一个小巧、安全、URL友好、唯一的 JavaScript 字符串ID生成器。

markdown-it

npm i markdown-it

Markdown解析器做得很好。快速且易于扩展。

markdown-it-mathjax3

npm i markdown-it-mathjax3

将数学添加到Markdown

is-mobile

npm i is-mobile

根据 useragent 字符串检查移动浏览器。

highlight.js

npm i highlight.js

Highlight.js是一个用JavaScript编写的语法高亮器。它可以在浏览器和服务器上工作。它几乎可以处理任何标记,不依赖于任何其他框架,并且具有自动语言检测功能。

copy-to-clipboard

npm i copy-to-clipboard

简单的模块暴露了复制功能,该功能将尝试使用 execCommand 并回退到IE特定的剪贴板数据接口,最后,使用具有适当文本内容和消息的常规提示

@microsoft/fetch-event-source

npm i @microsoft/fetch-event-source

此包提供了一个更好的API,用于使用Fetch API中提供的所有功能进行事件源请求(也称为 server-sent events服务推送事件)。

vuepress

npm i vuepress

极简主义Vue支持的静态站点生成器

material-design-icons-iconfont

npm i material-design-icons-iconfont

MDIDX(这个存储库)是Google的Material Design图标存储库的一个分支(+修复)。遗憾的是,谷歌为软件开发人员在使用材料设计图标库时遇到的问题分配了低维护和低支持。

MDIDX帮助现代web开发人员在他们的项目中使用并包含(很棒的)Material Design图标库。

color-mode

npm i color-mode

使用ColorMode将颜色主题系统添加到您的页面!

devtools

npm i devtools

此包提供了一个低级别接口,用于运行基于WebDriver协议的浏览器自动化脚本。如果你正在寻找一个自动化Chrome或Firefox的工具,你应该查找Puppeter。假设WebdriverIO包使用它,以便在Chrome DevTools协议上运行其自动化。

config-lite

npm i config-lite --save

一个超级简单、灵活、直观的配置模块,支持yaml和toml。会根据环境变量(NODE_ENV)的不同从当前执行进程目录下的 config 目录加载不同的配置文件。

express-session

npm i express-session

cookie是一种客户端的状态管理技术
当浏览器向服务器发送请求时,服务器会将少量的数据以set-cookie消息头的方式发送给浏览器
浏览器会将这些数据保存下来。当浏览器再次访问服务器时,会将这些数据以cookie消息头的方式发送给服务器。

session是一种服务器端的状态管理技术。
当浏览器访问服务器时,服务器创建一个session对象(该对象有一个唯一的id号,称之为sessionId),服务器在默认情况下,会将sessionId以cookie的方式(set-cookie消息头)发送给浏览器,浏览器会将sessionId保存到内存。当浏览器再次访问服务器时,会将sessionId发送给服务器,服务器依据sessionId就可找到之前创建的session对象。

在处理这些授权有一种更好的技术—使用token验证可以取代session。

express-session 这个中间件组件替代 cookie-parser和 cookie-session中间件成为处理用户状态的首选。

mongodb

npm i mongodb

Node.js的官方MongoDB驱动程序。

mongodb-uri

npm i mongodb-uri

解析并格式化以下形式的MongoDB URI:
mongodb://[username[:password]@]host1[:port1][,host2[:port2],…[,hostN[:portN]]][/[database]][?options]

connect-mongo

npm i connect-mongo

用 Typescript 编写的 Connect 和 Express 的 MongoDB 会话存储。用于将 MongoDB 作为 session 存储引擎。它提供了一种方便的方式来管理和存储轻量级的 session 数据,并将其保存在 MongoDB 数据库中。
引入connect-mongo和express-session然后调用connect-mongo将express-sessino传入,获取上一步返回的类,然后使用express-session中间件的时候对于store选传入这个类的实例对象

connect-mongodb-session

npm i connect-mongodb-session

用于connect 和 Express 的 MongoDB 支持的会话存储。旨在为 connect mongo 等模块提供维护良好、功能齐全的替代品

该模块导出一个函数,该函数采用connect(或Express)的实例,并返回一个MongoDB store类,该类可用于在MongoDB中存储会话。

winston

npm i winston

用于业务代码中对需要记录日志的地方进行记录

express-winston

npm i express-winston

主要用于记录请求进入和结束时的一些信息,可以将req的请求地址,请求方法,查询参数,请求体参数等记录下来,可以将res的请求全程耗时等记录下来。

winston-daily-rotate-file

npm i winston-daily-rotate-file

用户日志文件的自动滚存,压缩以及清理

connect-history-api-fallback

npm i connect-history-api-fallback

通过指定的索引页代理请求的中间件,对于使用HTML5历史API的单页应用程序非常有用。
用于处理前端路由的中间件,它的原理是在服务器接收到请求时,检查请求的路径是否匹配到静态文件(如HTML、CSS、JS等),如果不匹配,则将请求重定向到前端的入口文件,通常是 index.html。

chalk

npm i chalk

是一个色彩输出工具库,可以实现命令行文字的颜色、背景颜色、加粗、下划线等样式的修改,同时也支持自定义样式。 默认node在终端输出的文字是黑白的,为了使输出不在单调,添加文字背景、改变字体颜色、可以使用chalk.js这个库。

bluebird

npm i bluebird

Bluebird 是一个功能齐全的 promise 库,专注于创新功能和性能

captchapng

npm i captchapng

数字生成图片验证码

connect-flash

npm i connect-flash

闪存是会话中用于存储消息的一个特殊区域。信息被写入闪存,并在显示给用户后被清除。flash通常与重定向结合使用,以确保消息可用于下一个要呈现的页面。
这个中间件是在Express3.x删除了对flash的直接支持后从Express2.x中提取的。connect-flash将此功能带回Express3.x,以及任何其他与中间件兼容的框架或应用程序,以实现彻底的可重用性。

cross-env

npm i cross-env

运行跨平台设置和使用环境变量的脚本

formidable

npm i formidable

用于解析表单数据,尤其是文件上传。

gm

npm i gm

基于node.js的图片处理插件,它封装了图片处理工具GraphicsMagick(GM)和ImageMagick(IM),可使用spawn的方式调用。
使用gm主要还是用来添加水印,因为nodejs本身自带的image模块能满足大部分需求,但是无法添加水印

marked

npm i marked

用于解析 Markdown 的低级编译器,无需长时间缓存或阻塞
轻量级,同时实现支持的风格和规范的所有降价功能

node-fetch

npm i node-fetch

为Node.js提供Fetch API的轻量级模块。

pinyin

npm i pinyin

汉字拼音转换工具。转换中文字符为拼音。可以用于汉字注音、排序、检索。

pm2

npm i pm2

Node.js应用程序的生产流程管理器,具有内置的负载均衡器。它允许您使应用程序永远保持活力,在不停机的情况下重新加载应用程序,并促进常见的系统管理任务。

qiniu

npm i qiniu

将数据安全地存储到七牛云上。

sha1

npm i sha1

使用SHA-1算法对消息进行散列的本地js函数

time-formater

npm i time-formater

在javascript中显示日期。

time-stamp

npm i time-stamp

获取格式化的时间戳。

pinia

npm i pinia

直观、类型安全且灵活的Vue Store,同样是一个Vue状态管理工具,它和vuex有很多相似的地方。其次相比于vuex,pinia对于typescript的支持性更好,友好的devTools支持,pinia只有1kb,简化了很多方法的写法。由于vuex比较完善,因此,pinia更加适合小型项目,vuex更加适合大型项目。

echarts

npm i echarts

一个基于 JavaScript 的开源可视化图表库,提供了将直观、交互式和高度可定制的图表添加到商业产品中的简单方法。基于zrender,这是一个全新的轻量级画布库。

express-rate-limit

npm i express-rate-limit

Express的基本限速中间件。用于限制对公共API和/或端点(如密码重置)的重复请求。与 express-slow-down 和 ratelimit-header-parser配合使用非常好。

express-slow-down

npm i express-slow-down

Express的基本速率限制中间件,可减慢响应速度,而不是直接阻止它们。用于减缓对公共API和/或端点(如密码重置)的重复请求。

ratelimit-header-parser

npm i ratelimit-header-parser

将各种形式的RateLimit标头解析为标准化格式。支持IETF Rate Limit Headers标准草案7中的组合形式、早期草案的未组合RateLimit-*格式、传统的X-RateLimit-*标头以及其他一些格式。

http-status

npm i http-status

用于与HTTP状态代码交互的实用程序。

express-mongo-sanitize

npm i express-mongo-sanitize

Express4.x中间件,用于净化用户提供的数据以防止 MongoDB 操作符注入。

以 $ 开头或包含 . 的对象键。保留给 MongoDB 作为操作符使用。如果没有这种净化,恶意用户可能会发送包含 \ $ 运算符或包含 . 的对象。这可能改变数据库操作的上下文。最臭名昭著的是 $where 运算符,它可以在数据库上执行任意 JavaScript。

passport

npm i passport

是Node.js的Express兼容身份验证中间件。

Passport的唯一目的是验证请求,它通过一组称为策略的可扩展插件来验证请求。Passport不装载路由或采用任何特定的数据库模式,这最大限度地提高了灵活性,并允许开发人员做出应用程序级别的决策。API很简单:您为Passport提供一个身份验证请求,而Passport提供了挂钩,用于控制身份验证成功或失败时发生的情况。

passport-jwt

npm i passport-jwt

用于使用JSON Web令牌进行身份验证的Passport策略。

此模块允许您使用JSON web令牌对端点进行身份验证。它旨在用于在没有会话的情况下保护RESTful端点。

swagger-jsdoc

npm i swagger-jsdoc

这个库读取JSDoc注释的源代码,并生成OpenAPI(Swagger)规范。

swagger-ui-express

npm i swagger-ui-express

该模块允许您根据swagger.json文件从express提供自动生成的swagger-ui生成的API文档。结果是通过路由从API服务器托管API的活文档。

Swagger版本取自npm模块Swagger-ui-dist。请使用锁定文件或指定swagger ui dist的版本,以确保其在不同环境中保持一致。

dotenv

npm i dotenv

Dotenv 是一个零依赖模块,它将环境变量从.env文件加载到process.env中。将配置与代码分开存储在环境中是基于十二因素应用程序方法论的。

ajv

npm i ajv

Node.js和浏览器最快的JSON验证器。

ajv-errors

npm i ajv-errors

Ajv验证器的JSON模式中的自定义错误消息

badwords-list

npm i badwords-list

一个高度可消费的坏(脏话)英语单词列表,基于谷歌“你喜欢什么”项目中的简短列表

cheerio

npm i cheerio

专门为服务器设计的核心jQuery的快速、灵活和精益实现。

colors

npm i colors

在node.js控制台中获取颜色和样式

countries-list

npm i countries-list

国家、语言和大陆数据(首都和货币、本地名、代码)。
大陆和国家:国家和地区编码(ISO 3166-1)ISO 3166-1 alpha-2 代码(包含 alpha-2 到 alpha-3 集)、名称、ISO 639-1语言、首都和ISO 4217 货币代码、本地名称、代码。列表有JSON、CSV和SQL格式。此外,包含单独的JSON文件和其他国家/地区表情符号标志数据。

express-handlebars

npm i express-handlebars

Express的Handlebars视图引擎

feather-icons

npm i feather-icons

是一个简单漂亮的开源图标集合。每个图标都设计在24x24网格上,强调简洁、一致和灵活性。
https://feathericons.com/

glob

npm i glob

使用shell使用的模式匹配文件。

got

npm i got

Node.js的人性化、强大的HTTP请求库。

gulp-less

npm i gulp-less

Gulp的LESS插件。
gulp 是基于 node 实现 Web 前端自动化开发的工具,利用它能够极大的提高开发效率。

html-entities

npm i html-entities

最快的HTML实体库。根据模式选项值,对替换HTML特殊字符(<>&“')和/或其他字符范围的文本进行编码。

同时提供TypeScript和Flow类型。

lodash

npm i lodash

Lodash 库导出为 Node.js 模块。是一套工具库,内部封装了很多字符串、数组、对象等常见数据类型的处理函数。

lunr

npm i lunr

Lunr.js是一个用于浏览器的小型全文搜索库。它为JSON文档编制索引,并提供一个简单的搜索接口,用于检索与文本查询最匹配的文档。

有点像Solr,但小得多,没有那么亮。

mime-db

npm i mime-db

这是一个包含mime类型及其信息的大型数据库。它由一个单独的公共JSON文件组成,不包括任何逻辑,允许它与API保持尽可能的非绑定。

mime-type

npm i mime-type

自定义的更强大的mime类型实用程序可以与mime-db一起使用。

mkdirp

npm i mkdirp

递归 mkdir,就像 mkdir-p,但是在Node.js中!递归的创建不存在的目录

node-cron

npm i node-cron

node cron模块是基于GNU crontab的node.js的纯JavaScript中的小型任务调度器。该模块允许您使用完整的crontab语法在node.js中调度任务。

nodemailer

npm i nodemailer

从Node.js发送电子邮件–非常简单!

numeral

npm i numeral

用于格式化和操作数字的javascript库。

object-hash

npm i object-hash

从节点和浏览器中的对象和值生成哈希。使用node.js加密模块进行哈希。支持SHA1和许多其他(取决于平台)以及自定义流(例如CRC32)。

paypal-rest-sdk

npm i paypal-rest-sdk

PayPal的Node SDK存储库(Node.js版本>=0.6.x)和REST API的Node示例

rand-token

npm i rand-token

根据您的随机性选择生成随机令牌。

rimraf

npm i rimraf

用于 node 的 UNIX 命令 rm-rf 。

sanitize-html

npm i sanitize-html

sance-html 提供了一个简单的 html 消毒剂,带有清晰的API。

sitemap

npm i sitemap

sitemap是一个高级流式网站地图生成库/CLI,使创建网站地图XML文件变得简单。

string-strip-html

npm i string-strip-html

从字符串中剥离HTML标记。没有解析器,接受混合源。

strip-bom

npm i strip-bom

从字符串中删除UTF-8字节顺序标记(BOM)

stripe

npm i stripe

Stripe Node库提供了从用服务器端JavaScript编写的应用程序访问Stripe API的便利。

要在浏览器中收集客户和付款信息,请使用Stripe.js。

uglifycss

npm i uglifycss

UglifyCSS 是 YUI Compressor 到 NodeJS 的一个端口,用于 CSS 部分。它的名字引用了令人敬畏的 UglifyJS,但 UglifyCSS 不是一个CSS 解析器。与YUI CSS Compressor 一样,它应用了许多 regexp 替换。请注意,YUI Compressor 存储库中也提供了到 JavaScript 的端口。

UglifyCSS成功通过YUI compressor CSS 测试套件。

xml-js

npm i xml-js

将XML文本转换为Javascript对象/JSON文本(反之亦然)。

yenv

npm i yenv

使用YAML管理环境事务。

ava

npm install --save-dev ava

AVA是Node.js的测试运行程序,具有简洁的API、详细的错误输出、新语言功能和htread隔离,让您可以放心地进行开发

clean-css

npm install --save-dev clean-css

clean css是一个快速高效的css优化器,适用于Node.js平台和任何现代浏览器。

globby

npm i globby

用户友好的glob匹配

基于快速glob,但添加了一堆有用的功能。

less

npm i less

这是Less的JavaScript官方稳定版本。

supertest

npm i supertest

HTTP断言通过超级代理变得容易。为转发电子邮件和Lad进行维护。

uglify-js

npm i uglify-js

UglifyJS是一个JavaScript解析器、minifier、压缩器和美化器工具包。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值