process对象是node的全局全局变量,对node的进程进行相关的控制
一、process属性
- process.env:环境变量
- process.nextTick:eventLoop事件
- process.pid:获取当前进程id
- process.ppid:获取对应的父进程
- process.cwd:获取当前进程工作目录
- process.platform:获取当前进程运行的操作系统平台
- process.uptime():当前进程已运行时间
- 进程事件:process.on(‘uncaughtException’,cb) 捕获异常信息、 process.on(‘exit’,cb)进程推出监听
- 三个标准流:process.stdout 标准输出、 process.stdin 标准输入、 process.stderr 标准错误输出
- process.title 指定进程名称,有的时候需要给进程指定一个名称
二、prcoess方法使用
1.process.cwd()
- 返回当前 Node进程执行的目录:一个Node 模块 A 通过 NPM 发布,项目 B 中使用了模块 A。在 A 中需要操作 B 项目下的文件时,就可以用 process.cwd() 来获取 B 项目的路径
2.process.argv
- 在终端通过 Node 执行命令的时候,通过 process.argv 可以获取传入的命令行参数,返回值是一个数组:
0: node的启动文件
1: 被执行的 JS 文件路径
2~n: 真实传入命令的参数
3.process.env
- 返回一个对象,存储当前环境相关的所有信息
- 用于获取当前环境的.env文件中的环境变量
- .env后缀自定义
- 可以通过.env.name来设置你启动环境的环境变量。例如:.env.dev的环境变量文件想要在development 模式下被载入,可以在package.json的命令通过 --mode 选项参数为命令行覆写默认的模式"dev": "vue-cli-service serve --mode dev",然后就会读取到.env.dev的环境变量文件了
三、webpack中使用process
1.vue-cli3中
- 在vue-cli3中可以在根目录(与package.json同级)中创建以下四种类型的环境变量文件:
.env 在所有的环境中被载入
.env.local 在所有的环境中被载入,但会被 git 忽略
.env.[mode] 只在指定的模式中被载入
.env.[mode].local 只在指定的模式中被载入,但会被 git 忽略
- 每个环境变量中都是‘键名=值’,如果需要增加环境变量就必须以VUE_APP_*开头的变量才会被读取到
- 除了VUE_APP_*的变量以外,还有两个固定的变量名
NODE_ENV:值一般是“development”、“production”、“test”
BASE_URL:会和 vue.config.js 中的 publicPath 选项相符,即你的应用会部署到的基础路径。
四、vite中使用环境变量
1. vite在一个特殊的 import.meta.env 对象上暴露环境变量。默认的环境变量
- import.meta.env.BASE_URL: "/" 部署应用时的基本 URL。他由base 配置项决定
- import.meta.env.DEV: true 应用是否运行在开发环境 (永远与 import.meta.env.PROD相反)
- import.meta.env.MODE: "dev" 应用运行的模式
- import.meta.env.PROD: false 应用是否运行在生产环境
- import.meta.env.SSR: false 应用是否运行在 server 上
2.除开固定的变量以外都需要VITE_*和VITE_APP_*
- VITE_*不管什么模式下都可以拿到
- VITE_APP_*只有在自己的.env.后缀名下才可以拿到
五、vue3+vite+ts使用process
1.需要安装@types/node,方便引入dotev
//安装 @types/node
npm i --save-dev @types/node
2.安装dotenv
//安装 dotenv
npm install dotenv