process 全局变量
- process 是 Nodejs 的全局变量,它返回一个包含用户环境信息的对象,如果需要给 Nodejs 设置一个环境变量,并把它挂载在 process.env 返回的对象上,便可以在代码中进行相应的环境判断;
- 如果想用 process.env.NODE_ENV,就必须先设置其值才能用,可以通过设置 package.json 的 scripts 来实现;
问题
Windows 系统和 Mac 系统它们的语法都不尽相同,那么问题又来了,在 Windows 开发部署的项目,可能在 Mac 系统无法正常打包,反之亦然;
Windows 系统
// package.json
{
"scripts": {
"dev": "set NODE_ENV=development && webpack-dev-server --open --hot",
"build": "set NODE_ENV=production && --progress --hide-modules"
}
}
Mac 系统
// package.json
{
"scripts": {
"dev": "export NODE_ENV=development && webpack-dev-server --open --hot",
"build": "export NODE_ENV=production && --progress --hide-modules"
}
}
利用库来解决以上问题
cross-env 插件
-
cross-env 是一个跨平台设置环境变量的第三方包,它可以让你只配置一行命令,就能轻松地在多个平台设置环境变量;
-
安装使用:npm install cross-env --save-dev
JSONJavaScript// package.json { "scripts": { "dev": "cross-env NODE_ENV=development webpack-dev-server --open --hot", "build": "cross-env NODE_ENV=production webpack --mode=production --progress --hide-modules" }, }
// 项目中使用 console.log(process.env.NODE_ENV);
dotenv 插件
-
dotenv 是一个零依赖的模块,它能将环境变量中的变量从 .env 文件加载到 process.env 中,使用 dotenv 可以让我们免于在各个文件中引入配置文件,也可以很好的解决敏感信息的泄漏,利于后期代码维护;
-
安装使用:npm install dotenv --save-dev
BASHJavaScript# 根目录下创建 .env 文件 # 主机 HOST=localhost # 端口号 PORT=3002
// 入口文件 main.js 引入 dotenv 并可全局使用 require('dotenv').config({ path: '.env' }); // 使用 console.log(process.env.HOST); // localhost console.log(process.env.PORT); // 3000
vue-router📝 动态路由匹配
上一篇