npm简介
npm是世界上最大的软件注册仓库,拥有超过百万的代码包。使用npm可以非常便捷地管理项目依赖包。
npm官方文档地址:https://docs.npmjs.com/
npm安装
npm与node.js集成,所以安装node.js完毕即可,因为node.js内置了npm工具。
node.js下载地址:https://nodejs.org/zh-cn/
下载完毕后,可在终端输入
npm -v
以及
node -v
查看相应的npm和node版本号信息
npm的基本使用
npm镜像的设置与查看
搭建环境时通过如下代码将npm设置成淘宝镜像
npm config set registry https://registry.npm.taobao.org -global
npm config set disturl https://npm.taobao.org/dist --global
设置当前地址(设置为默认地址)
npm config set registry https://registry.npmjs.org/
查看镜像的配置结果
npm config get registry
npm config get disturl
使用nrm工具切换淘宝源
npx nrm use taobao
如果之后需要切换回官方源可使用
npx nrm use npm
npm的使用
通过查看版本,看npm是否安装成功
npm -v
使用npm命令安装模块
npm install <Module Name>
可以直接在命令行里使用(全局安装)
npm install <Module Name> -g
查看所有全局安装的模块
npm list -g
查看某个模块的版本号(以vue为例)
npm list vue
这样我们就可以更新npm版本(@后跟版本号)
npm -g install npm@5.9.1
-save在packag.json文件的dependencies节点写入依赖
npm install -save <moduleName>
-save-dev在package文件的devDependencies节点写入依赖
npm install -save-dev <moduleName>
dependencies:运行时的依赖,发布后,即生产环境下还需要用的模块
devDependencies:开发时的依赖。里面的模块是开发时用的,发布时用不到它,比如项目中使用的gulp,压缩css、js的模块。这些模块在我们的项目部署后是不需要的
npm常用命令
npm提供了很多命令,例如install和publish,使用npm help
可查看所有命令。
使用npm help <command>
可查看某条命令的详细帮助,例如npm help install
。
在package.json所在目录下使用npm install . -g
可先在本地安装当前命令行程序,可用于发布前的本地测试。
使用npm update <package>
可以把当前目录下node_modules子目录里边的对应模块更新至最新版本。
使用npm update <package> -g
可以把全局安装的对应命令行程序更新至最新版。
使用npm cache clear
可以清空npm本地缓存,用于对付使用相同版本号发布新版本代码的人。
使用npm unpublish <package>@<version>
可以撤销发布自己发布过的某个版本代码。
npm与package.json
默认参数初始化package.json项目配置文件
npm init -yes
依次自定义参数初始化package.json项目配置文件
npm init
dependencies中包的版本前:
- 不加符号:指定版本
- 加^:表示允许更改最后两个版本号至最新
- 加~:表示允许更改最后一个版本号至最新
举例:
package.json文件中版本号的说明,安装的时候代表不同的含义:
"5.0.3"表示安装指定的5.0.3版本
"~5.0.3"表示安装5.0.X中最新的版本
"^5.0.3"表示安装5.X.X中最新的版本
scripts表示可通过在终端运行:npm run scripts中键值
来执行该键值对应的终端命令
package.json数据汇总
名称 | 意义 |
---|---|
name | 包名 |
version | 包的版本号 |
description | 包的描述 |
homepage | 包的官网url |
author | 包的作者姓名 |
contributors | 包的其他贡献者姓名 |
dependencies | 依赖包列表。如果依赖包没有安装,npm 会自动将依赖包安装在node_module目录下 |
repository | 包代码存放的地方的类型,可以是git或 svn,git可在Github上 |
main | main字段指定了程序的主入口文件,require(‘moduleName’)就会加载这个文件。这个字段的默认值是模块根目录下面的index.js |
keywords | 关键字 |