cross-env介绍

半兽人 发表于: 2025-07-29   最后更新时间: 2025-07-29 10:18:10  
{{totalSubscript}} 订阅, 34 游览

cross-env 是一个 Node.js 工具,用来在 不同操作系统之间设置环境变量而不出错,尤其在 Windows 和 Unix 系统差异性明显的项目中非常有用。

一、为什么需要 cross-env

在 Node.js 项目中经常会在脚本中设置环境变量,例如:

"scripts": {
  "start": "NODE_ENV=production node app.js"
}

这个在 Unix/macOS 中没有问题,但在 Windows 上会报错:

'NODE_ENV' 不是内部或外部命令,也不是可运行的程序

二、cross-env 的作用

使用 cross-env,可以写出跨平台都能运行的脚本:

"scripts": {
  "start": "cross-env NODE_ENV=production node app.js"
}

这样,NODE_ENV=production 就能同时在 Linux/macOSWindows 上设置成功。

三、安装方法

npm install --save-dev cross-env
或
pnpm install --save-dev cross-env

或使用 yarn:

yarn add --dev cross-env

四、使用示例

1. 设置多个变量

"scripts": {
  "build": "cross-env NODE_ENV=production API_URL=https://api.example.com webpack"
}

在代码中就可以读取这些变量:

console.log(process.env.NODE_ENV); // production
console.log(process.env.API_URL);  // https://api.example.com

2. 使用 cross-env-shell(少见)

如果你想写更复杂的 shell 脚本,比如使用 && 连写命令,可以用 cross-env-shell

"scripts": {
  "test": "cross-env-shell NODE_ENV=test \"echo $NODE_ENV && node test.js\""
}

注意:$NODE_ENV 是 Unix 风格,如果要兼容 Windows 和 Unix,推荐使用 Node.js 脚本中用 process.env.变量名 获取。

五、常见使用场景

  1. 设置开发 / 生产环境变量(NODE_ENV
  2. 切换不同 API 地址(API_URL
  3. 动态传参给打包工具(webpack、vite)
  4. 启用调试模式(如 DEBUG=true

六、总结

特点 说明
跨平台 Windows/Linux/macOS 通用
简单 一行命令就能设置多个变量
常配合 npm script 使用 在 package.json 脚本中使用
更新于 2025-07-29
在线,1小时前登录

查看NextJS更多相关的文章或提一个关于NextJS的问题,也可以与我们一起分享文章