前端模块开发之npm安装、命令初体验(一)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/achenyuan/article/details/80686025

npm学习记要

前言

npm是个前端js模块管理工具,类似maven里的pom.xml

安装npm

npm(node package manager,NPM是随同NodeJS一起安装的包管理工具,所以我们需要下载安装nodejs
下载地址,选择Windows Installer (.msi)版本安装。一路点next。
测试是否安装成功
在CMD命令行输入命令:

npm -v

有数据输出则表示安装成功

安装淘宝镜像

默认的镜像地址是:https://registry.npmjs.org/,由于速度原因需要换成淘宝镜像
在CMD命令行执行如下命令:

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

这时只是修改的镜像地址,命令还是使用npm
安装淘宝定制的 cnpm (gzip 压缩支持) 命令行工具:

npm install -g cnpm --registry=https://registry.npm.taobao.org"

以后就可以使用cnpm代替npm命令了

我们可以打开C:\Users\Administrator\.npmrc文件,内容如下:

registry=http://registry.npm.taobao.org/

升级npm命令

由于npm自身的更新频率比Node.js高很多,所以通过上面的命令安装的npm可能不是最新版本
升级命令

npm install npm@latest -g

安装模块自动写入package.json命令

安装的模块分为两类
dependencies和devDependencies,分别对应生产环境需要的安装包和开发环境需要的安装包。
devDependencies开发依赖:npm install <package_name> --save-dev
dependencies生产依赖: npm install <package_name> --save
新安装的模块信息记录到package.json文件的dependencies和devDependencies依赖里。

如果安装带版本号的模块,需要在package_name后加@,例如express@1.2版本

卸载模块自动删除package.json命令

普通的卸载命令:npm uninstall <package_name>
删除模块同时删除package.json里依赖如下
devDependencies开发依赖:npm uninstall --save
dependencies生产依赖:npm uninstall --save-dev

常用命令

常用命令中文文档
帮助命令:npm help
查看帮助命令:npm help 命令(如install)
卸载模块:npm uninstall 模块名
更新模块:npm update 模块名
搜索模块:npm search 模块名
创建模块:npm init
创建默认配置package.json创建模块:npm init --yes
清空NPM本地缓存:npm cache clear
查看当前已经安装插件:npm list
查看当前哪些包需要更新:npm outdated --depth=0

上面命令都是本地安装后使用的命令,如果是全局安装,则在尾部加个-g

查看全局安装的文件路径:npm root -g

发布模块和取消/卸载模块

发布模块:npm publish
取消模块:npm unpublish
废弃模块:npm deprecate <pkg>[@<version>] <message>
取消废弃模块:npm deprecate <pkg>[@<version>] '',取消作废操作,就是为message 参数指定一个空字符串("")

取消发布包可能并不像你想象得那么容易,这种操作是受到诸多限制的,撤销发布的包被认为是一种不好的行为
1 根据规范,只有在发包的24小时内才允许撤销发布的包( unpublish is only allowed with versions published in the last 24 hours)
2 即使你撤销了发布的包,发包的时候也不能再和被撤销的包的名称和版本重复了(即不能名称相同,版本相同,因为这两者构成的唯一标识已经被“占用”了)
npm unpublish的推荐替代命令:npm deprecate <pkg>[@<version>] <message>
使用这个命令,并不会在社区里撤销你已有的包,但会在任何人尝试安装这个包的时候得到警告

更新版本

比如已经在npm中发布了一个1.0.0版本的包
1、本地更新版本号
比如我想来个1.0.1版本,注意,是最后一位修改了增1,那么命令:npm version patch 回车就可以了;
比如我想来个1.1.0版本,注意,是第二位修改了增1,那么命令 :npm version minor 回车就可以了;
比如我想来个2.0.0版本,注意,是第一位修改了增1,那么命令:npm version major 回车就可以了;
2、修改远端的版本,提交到远端npm中:
npm publish

本地安装和全局安装

本地安装安装在当前目录的node_modules目录下,没有node_modules则创建。
全局安装安装在C:\Users\Administrator\AppData\Roaming\npm\node_modules目录下,安装命令只差-g,
本地安装:npm install express
全局安装:npm install express -g

ps 安装nodejs时同时安装了一些模块,位置在C:\Program Files\nodejs\node_modules\npm\node_modules

修改npm配置

以全局下载目录为例,默认下载目录在C:\Users\Administrator\AppData\Roaming\npm\node_modules,导致C盘变大,修改在D盘的D:\node_modules_global路径下。
打开配置

 npm config list

内容如下:

D:\tmp\vsCode\test>npm config list
; cli configs
metrics-registry = "http://registry.npm.taobao.org/"
scope = ""
user-agent = "npm/6.1.0 node/v8.11.3 win32 x64"

; userconfig C:\Users\Administrator\.npmrc
registry = "http://registry.npm.taobao.org/"

; builtin config undefined
prefix = "C:\\Users\\Administrator\\AppData\\Roaming\\npm"

; node bin location = C:\Program Files\nodejs\node.exe
; cwd = D:\tmp\vsCode\test
; HOME = C:\Users\Administrator
; "npm config ls -l" to show all defaults.

prefix就是指定全局路径。

设置prefix:

npm config set prefix=D:/node_modules_global

查看prefix值:

npm config get prefix

再次打开C:\Users\Administrator\.npmrc文件,内容如下:

registry=http://registry.npm.taobao.org/
prefix=D:/node_modules_global

#npm i和npm install的区别
两者都可以安装模块,但2者有区别

  1. npm i安装的模块无法用npm uninstall删除,用npm uninstall i才卸载掉
  2. npm i会帮助检测与当前node版本最匹配的npm包版本号,并匹配出来相互依赖的npm包应该提升的版本号
  3. 部分npm包在当前node版本下无法使用,必须使用建议版本
  4. 安装报错时intall肯定会出现npm-debug.log 文件,npm i不一定
  5. npm install能生成package.lock.json文件,而npm i不能

总之建议使用npm install命令

package.json作用

package.json是描述模块依赖关系以及包地址的配置文件。由于管理模块。

package-lock.json的作用

这个文件锁定了你第一次安装模块时的版本号,你和同事使用这个安装模块就不会出问题,package.json里的dependencies只能锁定大版本号,不能锁定你具体使用哪个版本号。2个json文件都是自动生成的,一般不手动修改。

#更好的依赖升级工具 —— npm-check
在中大型项目中,更新依赖需要十分谨慎,避免没有注意到新版本的依赖在 API 方面有重大更新(Breaking changes),而直接更新的情况。
官方文档npm-check
安装方法:

 npm install -g npm-check

使用方法:

# 检查/更新全局依赖
$ npm-check -gu
# 检查/更新当前项目依赖
$ npm-check -u

更新全局依赖

$ npm-check -gu

更新当前项目依赖

$ npm-check -u

#yarn
#安装淘宝镜像

yarn config set registry https://registry.npm.taobao.org
阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页