一、npm命令
在开发的过程中,我们可能会反复使用很多的 CLI 命令,例如:
- 启动工程命令(node 或 一些第三方包提供的CLI命令)
- 部署工程命令(一些第三方包提供的CLI命令)
- 测试工程命令(一些第三方包提供的CLI命令)
于是,npm 非常贴心的支持了脚本,只需要在 package.json 中配置 scripts 字段,即可配置各种脚本名称之后,我们就可以运行简单的指令来完成各种操作了
运行方式是 npm run 脚本名称
nodemon可以监视目标的内容的变化,Ctrl+c结束状态
不仅如此,npm 还对某些常用的脚本名称进行了简化,下面的脚本名称是不需要使用run的:
- start
- stop
- test
一些细节:
- 脚本中可以省略npx
- start脚本有默认值:node server.js(没有设置start会默认server.js)
二、环境配置
我们书写的代码一般有三种运行环境:
- 开发环境
- 生产环境
- 测试环境
有的时候,我们可能需要在 node 代码中根据不同的环境做出不同的处理
如何优雅的让 node 知道处于什么环境,是极其重要的
通常我们使用如下的处理方式:
node中有一个全局变量 global (可以类比浏览器环境的window),该变量是一个对象,对象中的所有属性均可以直接使用
global有一个属性是process,该属性是一个对象,包含了当前运行node程序的计算机的很多信息,其中有一个信息是env,是一个对象,包含了计算机中所有的系统变量
通常,我们通过系统变量 NODE_ENV 的值,来判定node程序处于何种环境
有两种方式设置 NODE_ENV 的值
-
永久设置
-
临时设置
我们一般使用临时设置
因此,我们可以配置 scripts 脚本,在设置好了 NODE_ENV 后启动程序
为了避免不同系统的设置方式的差异,可以使用第三方库 cross-env 对环境变量进行设置
var a = "没有环境变量";
console.log(process.env.NODE_ENV);
if(process.env.NODE_ENV === "development"){
a = "开发环境"
}
else if(process.env.NODE_ENV === "production"){
a = "生产环境"
}
else if(process.env.NODE_ENV === "test"){
a = "测试环境"
}
console.log(a);
1.在node中读取package.json
有的时候,我们可能在 package.json 中配置一些自定义的字段,这些字段需要在node中读取
在node 中,可以直接导入一个json格式的文件,它会自动将其转换为js对象
var config = require("./package.json")
console.log(config.version);
console.log(config.a);
三、其它npm命令
1.安装
- 精确安装最新版本
npm install --save-exact 包名
npm install -E 包名
- 安装指定版本
npm install 包名@版本号
2.查询
- 查询包安装路径
npm root [-g]
- 查看包信息
npm view 包名 [子信息]
## view aliases:v info show
- 查询安装包
npm list [-g] [--depth=依赖深度]
## list aliases: ls la ll
3.更新
- 检查有哪些包需要更新
npm outdated
- 更新包
npm update [-g] [包名]
## update 别名(aliases):up、upgrade
4.卸载包
npm uninstall [-g] 包名
## uninstall aliases: remove, rm, r, un, unlink
5.npm 配置
npm的配置会对其他命令产生或多或少的影响
安装好npm之后,最终会产生两个配置文件,一个是用户配置,一个是系统配置,当两个文件的配置项有冲突的时候,用户配置会覆盖系统配置
通常,我们不关心具体的配置文件,而只关心最终生效的配置
通过下面的命令可以查询目前生效的各种配置
npm config ls [-l] [--json]
另外,可以通过下面的命令操作配置
- 获取某个配置项
npm config get 配置项
- 设置某个配置项
npm config set 配置项=值
- 移除某个配置项
npm config delete 配置项