Appearance
cross-env
简介
cross-env 是一个跨平台设置环境变量的工具。它能够以 Unix 方式设置环境变量,在 Windows 上也能正常工作。
安装
bash
npm install --save-dev cross-env基本使用
在 package.json 中使用:
json
{
"scripts": {
"build": "cross-env NODE_ENV=production webpack --config build/webpack.config.js",
"dev": "cross-env NODE_ENV=development webpack-dev-server"
}
}高级用法
设置多个环境变量
json
{
"scripts": {
"build": "cross-env NODE_ENV=production API_URL=https://api.example.com webpack"
}
}在代码中使用
javascript
if (process.env.NODE_ENV === 'production') {
console.log('生产环境')
} else {
console.log('开发环境')
}命令行中使用
bash
cross-env NODE_ENV=production API_KEY=123456 node server.js注意事项
- 环境变量的值中如果包含空格,需要用引号包裹
- Windows 用户特别需要注意,不要使用 SET 命令,直接使用 cross-env
- 在 CI/CD 环境中也可以正常工作
- 不要在 .env 文件中使用 cross-env,它是为命令行设计的
常见问题
为什么需要 cross-env?
- Windows 不支持 NODE_ENV=production 的设置方式
- 不同平台有不同的环境变量语法
- cross-env 提供了统一的解决方案
与 dotenv 的区别
- dotenv 用于从文件加载环境变量
- cross-env 用于命令行设置环境变量
- 两者可以配合使用