npm
包安装
npm install + 包名 或 npm i + 包名
npm install --global + 包名 或 npm i g + 包名 (重要:全局安装的包并非所有工程可用,它仅提供全局的CLI命令)
安装分为2种,本地安装 和 全局安装,默认本地安装,即当前目录下,全局安装的包放置在一个特殊的全局目录下,可以通过
npm config get prefix 查看全局目录位置。
大部分情况下,都不需要全局安装包,除非:
1. 包的版本非常稳定,很少有大的更新
2. 提供的CLI工具在各个工程中使用的非常频繁
3. CLI工具仅为开发环境提供支持,而非部署环境
包配置
目前遇到的的问题:
1. 拷贝的工程如何还原依赖?
2. 如何区分开发依赖和生产依赖?
3. 如果自身的项目也是一个包,如何描述包的信息
以上的问题都可以通过包的配置来解决
配置文件
npm将使用npm的工程本身看作成一个包,包的信息需要通过一个名词固定的配置文件来描述
配置文件的名词固定为:package.json
如何生产:可以手动创建该文件,而更多的时候,是通过命令 npm init 来创建的。
文件内容:项目名称、项目描述,入口文件,版本号、开发依赖、生产依赖...
注:npm init -y(--yes) 快速创建,所有的选项都使用默认值
保存依赖关系
package.json文件最重要的作用,是记录当前工程的依赖
1. dependencies: 生产环境的依赖包
2. devDependencies: 仅开发环境的依赖包
仅安装生产环境的依赖: npm install --production
npm i 或 npm i -S 或 npm i --save 安装的依赖默认为生产环境
npm i -D 或 npm --save-dev 安装为开发环境
包的使用
当使用nodejs导入模块时,如果模块路径不是以 ./ 或 ../ 开头,则node会认为导入的模块来自于node_modules目录。
这一块就不详细介绍了,自己在安装依赖的时候,可以搜索一下该依赖的使用方式,一般都是能搜索到的。
语义版本
当自已需要发布包的时候,要特别去了解该知识点。主要是对项目中使用到的依赖做版本控制。
避免还原的差异(安装确切版本的依赖)
package-lock.json 文件,该文件记录了安装包的确切依赖关系
当移植工程时,如果移植了package-lock.json文件,恢复安装时,会按照package-lock.json文件中的确切依赖进行安装,最大限度的避免了差异。
npm 脚本 (npm scripts)
对使用频率较高的CLI命令,在package.json中进行配置scripts字段。
运行环境配置
一般有三种运行环境:
1. 开发环境
2. 生产环境
3. 测试环境
node中有一个全局变量global(可以类比浏览器环境的window),该变量是一个对象,对象中的所有属性均可以直接使用。
global有一个属性是process,该属性是一个对象,包含了当前运行node程序的计算机的很多信息,其中一个信息就是env,
是一个对象,包含了计算机中所有的系统变量
通常,我们通过系统变量 NODE_ENV 的值,来判定node程序处于何种环境
有两中方式设置 NODE_ENV 的值
1. 永久设置 --> 本地手动添加环境变量
2. 临时设置 --> 在package.json配置scripts
例如: "scripts": {
"start" : "cross-env NODE_ENV=development node index.js"
}
注: cross-env 是一个插件,用来兼容不同系统的环境设置命令(window下是set NODE_ENV=development; mac下是export);
常用的npm命令
安装
1. 精确安装最新版本
npm install --save-exact 包名
npm install -E 包名
2. 安装指定版本
npm install 包名@版本号 // 例子: npm i lodash@2.1.0
查询
1. 查询包安装路径
npm root [-g] ([] 为可选,-g 表示全局路径,不填则为本地路径)
2. 查看包信息
npm view 包名(依赖) [子信息]
3. 查询安装包g
npm list [-g] [--depth=依赖深度]
更新
1. 检查有哪些包需要更新
npm outdated
2. 更新包
npm update [-g] [包名] (npm update 全部更新)
卸载
npm uninstall [-g] 包名
npm 配置
1. 查询目前生效的各种配置
npm config ls
2. 操作配置
获取某个配置项
npm config get 配置项
设置某个配置项
npm config set 配置项=值
移除某个配置项
npm config delete 配置项
发布包
准备工作
1. 移除淘宝镜像源
2. npm官网注册账号,完成邮箱认证
3. 本地使用 npm cli 进行登录
npm login 进行登录
npm whoami 查看当前登录账号
npm lugout 退出登录
4. 创建工程根目录
5 npm init 初始化项目
发布
1. 开发
2. 确定版本
3. npm publish 发布