Skip to content
On this page

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

注意事项

  1. 环境变量的值中如果包含空格,需要用引号包裹
  2. Windows 用户特别需要注意,不要使用 SET 命令,直接使用 cross-env
  3. 在 CI/CD 环境中也可以正常工作
  4. 不要在 .env 文件中使用 cross-env,它是为命令行设计的

常见问题

  1. 为什么需要 cross-env?

    • Windows 不支持 NODE_ENV=production 的设置方式
    • 不同平台有不同的环境变量语法
    • cross-env 提供了统一的解决方案
  2. 与 dotenv 的区别

    • dotenv 用于从文件加载环境变量
    • cross-env 用于命令行设置环境变量
    • 两者可以配合使用

要保持清醒 永远不抱有意外的幻想 凭空的期待最要命