认识
官网:https://www.npmjs.com
文档:https://docs.npmjs.com/
仓库:https://github.com/npm/cli
npm(Node Package Manager)是 Node.js 的包管理工具,用于安装、管理和共享 JavaScript 代码包。
针对 npm 命名,…… 不过有趣的是,npm 的官方文档现在不再将其视为缩写,而是直接称其为 “npm”(全部小写)。最初 npm 确实是 “Node Package Manager” 的缩写。但随着 npm 的发展,它已不仅仅用于 Node.js,也可以管理前端项目的依赖(如 React、Vue 等),所以官方不再强调其全称。现在 npm 官网和文档都直接使用 “npm”,而不是 “NPM”。
Q:npm 是否属于 Node.js 项目?
A:npm is a package manager for the JavaScript programming language maintained by npm, Inc., a subsidiary of GitHub. npm is the default package manager for the JavaScript runtime environment Node.js and is included as a recommended feature in the Node.js installer. Wikipedia / npm / https://en.wikipedia.org/wiki/Npm 所以,Node.js 只是包含 npm 命令,而并非 Node.js 的部分。
组成
配置文件路径 | .npmrc
- Per-user config file: $HOME/.npmrc
- Global config file: $PREFIX/etc/npmrc
模块仓库 Registry
- 官方:https://registry.npmjs.org
- 腾讯:http://mirrors.cloud.tencent.com/npm/
- 阿里:https://registry.npmmirror.com
- 华为:https://mirrors.huaweicloud.com/repository/npm/
性质
依赖管理(核心功能)
安装、更新、卸载 JavaScript 包。
自动解析依赖关系,生成 package.json 和 package-lock.json。
package.json,项目的配置文件,包含:
- dependencies:生产环境依赖(如 express)。
- devDependencies:开发环境依赖(如 eslint)。
- scripts:自定义命令(如 npm run dev)。
- version:项目版本号。
{
"name": "my-project",
"version": "1.0.0",
"scripts": {
"start": "node app.js",
"test": "jest"
},
"dependencies": {
"express": "^4.18.2"
},
"devDependencies": {
"eslint": "^8.56.0"
}
}
package-lock.json
- 锁定依赖版本,确保不同环境下安装的包版本一致。
- 不要手动修改它,npm 会自动维护。
install
npm config set package-lock=false // ignore package-lock.json files when installing
config
https://docs.npmjs.com/cli/v11/commands/npm-config
构建
安装 npm 工具
在 Linux 中,升级 NPM 命令:
npm install -g npm@next npm install -g npm@latest
应用
常用命令整理
# npm list -g # 显示所有用户目录中的包,以树形结构显示 # npm list -g -- depth=0 # 指定树显示的深度 # npm list # 显示当前目录中的包
Q:npm config set … vs. npm set … 两者区别?
A:功能完全相同。命令 npm config set 更正式,是 npm 官方推荐的配置方式。命令 npm set 属于旧版命令,未来可能被弃用。
-f, –force | The -f or –force argument will force npm to fetch remote resources even if a local copy exists on disk.
npm config set color false # 关闭颜色输出
使用国内阿里云镜像加速
npm 和 yarn 使用国内阿里云镜像加速 – mouseleo – 博客园
npm config set registry \
https://registry.npm.taobao.org --global
npm config set disturl \
https://npm.taobao.org/dist --global
https://registry.npm.taobao.org ⇒ https://registry.npmmirror.com/
设置使用网络加速
How to use NPM Behind a SOCKS Proxy | by James Jeffery | Medium
# 添加网络加速 npm config set proxy "http://127.0.0.1:8123" npm config set https-proxy "http://127.0.0.1:8123" # 删除网络加速 npm config delete proxy npm config delete https-proxy
调整日志等级
How to get more info from npm install?
通过命令行指定日志等级,如下:
npm install --verbose npm install --loglevel silly
根据 npm-config 文档 | https://docs.npmjs.com/misc/config
1)可用的日志等级有 “silent”, “error”, “warn”, “notice”, “http”, “timing”, “info”, “verbose”, “silly”,
2)越往后日志等级越高,输出日志信息也就越多;
3)如果日志写入失败,将写入当前目录下的 npm-debug.log 目录;
4)默认日志为 notice 级别;
检查 Package 版本
检查某个包的已安装版本以及最新版本
node.js – npm – how to show the latest version of a package – Stack Overflow
node.js – Find the version of an installed npm package – Stack Overflow
npm list -g cnpm --json npm view "cnpm" version npm info "cnpm" version
改进
… 404 Not Found ..
npm error 404 Not Found – GET https://cdn.npmmirror.com/packages/wrap-ansi/9.0.1/wrap-ansi-9.0.1.tgz
. .. .editorconfig .env.development .env.production .env.test .eslintrc .git .gitignore .husky .swc
package-lock.json 锁的死死的,官方变了,资源又下载不到
cnpm
cnpm: npm client for npmmirror.com
参考
npm tricks part 1: Get list of globally installed packages
Try the latest stable version of npm | npm Documentation
DeepSeek / 介绍 npm 命令
DeepSeek / npm 的全称是什么