NPM是随同NodeJS一起安装的包管理工具。
- 允许用户从NPM服务器下载别人编写的第三方包到本地使用。
- 允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。
- 允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。
nodejs安装完成 npm即安装完成。可查看npm 版本测试安装是否成功。
使用
0. 查看帮助命令
npm -h
查看具体命令帮助
npm <command> -h
如
npm install -h
npm install (with no args, in package dir)
npm install [<@scope>/]<pkg>
npm install [<@scope>/]<pkg>@<tag>
npm install [<@scope>/]<pkg>@<version>
npm install [<@scope>/]<pkg>@<version range>
npm install <alias>@npm:<name>
npm install <folder>
npm install <tarball file>
npm install <tarball url>
npm install <git:// url>
npm install <github username>/<github project>
aliases: i, isntall, add
common options: [--save-prod|--save-dev|--save-optional] [--save-exact] [--no-save]
更详细帮助信息可以使用
npm help <command>
会打开一个网页 详细介绍命令。
1.更换源
查看当前使用源
npm config get registry
使用npm -h命令可查看到npm配置文件 如
Specify configs in the ini-formatted file:
C:\Users\Administrator\.npmrc
默认似乎是没有该文件的,npm命令使用默认配置。。。而当修改了npm的一些config配置后,就会有一个.npmrc配置文件记录用户自定义配置。最常用的可能就是修改npm源。。。
可以直接手动修改该配置文件保存。
其他的各种方式也都是通过修改该文件达到该校效果的。。。个人还是更喜欢命令。不用自己找文件。
1.1使用config配置。
设置
npm config set registry https://registry.npm.taobao.org
查看
npm config get registry
https://registry.npm.taobao.org/
查看效果
npm info underscore
1.2 使用nrm
全局安装nrm
npm install -g nrm
列出源的候选项
nrm ls
npm ---------- https://registry.npmjs.org/
yarn --------- https://registry.yarnpkg.com/
tencent ------ https://mirrors.cloud.tencent.com/npm/
cnpm --------- https://r.cnpmjs.org/
taobao ------- https://registry.npmmirror.com/
npmMirror ---- https://skimdb.npmjs.com/registry/
使用其中一个。如taobao
nrm use taobao
查看结果
npm config get registry
https://registry.npmmirror.com/
2.安装包
npm包分为全局安装和本地安装,全局安装
2.1查看安装包信息 如underscore
npm info underscore
查看当前目录已安装包。
npm list --depth 0
–depth 0是为了只显示顶层包。。
查看全局安装包 只用加 -g即可
npm list -g --depth 0
npm list -g --depth 0
C:\Users\Administrator\AppData\Roaming\npm
+-- @vue/cli@4.5.13
+-- es-checker@1.4.2
+-- nrm@1.2.5
`-- yarn@1.22.11
C:\Users\Administrator\AppData\Roaming\npm 是全局安装包安装的目录。
2.2 本地安装。
一般安装到本地的包都是为了本地的node项目服务的,会有一个packages.json的文件来记录管理安装的包。如果没有该文件,安装包时会警告。
npm WARN saveError ENOENT: no such file or directory, open 'D:\workspace\npm-test\package.json'
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN enoent ENOENT: no such file or directory, open 'D:\workspace\npm-test\package.json'
初始一个项目的命令 很简单 npm init 然后按步骤选择即可。
存在packages.json时。安装的本地包都会记录到packages.json文件中。
如
"dependencies": {
"axios": "^0.24.0",
"core-js": "^3.6.5",
"element-ui": "^2.15.6",
"vue": "^2.6.11",
"vue-router": "^3.5.3",
"vuex": "^3.6.2"
},
"devDependencies": {
"@vue/cli-plugin-babel": "~4.5.0",
"@vue/cli-plugin-eslint": "~4.5.0",
"@vue/cli-service": "~4.5.0",
"babel-eslint": "^10.1.0",
"crypto-js": "^4.1.1",
"eslint": "^6.7.2",
"eslint-plugin-vue": "^6.2.2",
"vue-template-compiler": "^2.6.11"
},
其中devDependencies 通常是开发的工具(例如测试的库),而 dependencies 则是与生产环境中的应用程序相关。
可在安装包时指定。。。
--save 相当于-S 安装并添加条目到 package.json 文件的 dependencies。
--save-dev 相当于-D 安装并添加条目到 package.json 文件的 devDependencies。
如果不加 -S -D参数 默认添加到dependencies
npm install underscore
相当于
npm install underscore --save
2.3 全局安装。
全局安装就不用关心packages.json文件的问题。 安装位置不是当前目录。而是全局包目录。。。一般是用来安装一些工具包,如上面提到的nrm, 再如vue-cli。
一般来说如果npm目录加入了环境变量,可以直接使用npm命令的话,全局安装的包 命令也是可以直接使用的。
nrm ls
2.4 卸载包。
npm uninstall -h
npm uninstall [<@scope>/]<pkg>[@<version>]... [--save-prod|--save-dev|--save-optional] [--no-save]
aliases: un, unlink, remove, rm, r
--save-optional 选项 不太懂。。。
--save-prod -S 删除包同时 移除 package.json 文件中dependencies的引用。
--save-dev 删除包同时 移除 package.json 文件中devDependencies的引用。
如果程序包是开发依赖项(列出在 package.json 文件的 devDependencies 中),则必须使用 -D 或 --save-dev 标志从文件中移除:
版本问题
--save --save-prod 都相当 -S
--save-dev 相当于-D
如果任何参数都不添加 相当于-S 从packages.json中移除dependencies引用。
–no-save 只移除安装包,不从packages.json中移除移除。
3.其它问题
3.1 查看npm总体配置
npm config list
npm config list --json
npm config get [<key>]
3.2 清除缓存
包安装时出错是难免的。有时候恰好网络断了。。。这时候的包可能就要重装。一般需要删除缓存才行。
npm install underscore
首先本地删除安装失败的包 有时候安装失败了,依然会在本地node_modules目录中保存。。。很烦人。
npm uninstall underscore
一般uninstall 命令没用。可以手动在node_modules删除该包(一般我都是删除整个node_modules,缓存清除完重新下 反正有packages.json)
有可能包安装失败后,本地包目录是干净的不用处理,但是缓存可能出错了。
npm 缓存目录也可以通过npm config list --json找到
npm config get cache
npm config get cache
C:\Users\Administrator\AppData\Roaming\npm-cache
清除缓存。
npm cache clean --force
不过npm官方强烈不建议清空缓存。会有警告。。。那也没办法,谁让安装出错了呢。
如果问题没解决 可以把整个npm-cache都删除试一试,npm cache clean --force清除的是其中的_cacache目录
缓存和本地node_modules都清除后。可以重新安装。