问题:Vue 我可以设置 process.env.NODE_ENV

关于此处记录的模式和环境变量

https://cli.vuejs.org/guide/mode-and-env.html#modes

例如,我很困惑为什么我不能将以下变量设置为 mock。正如文件似乎所说,这将是您传入的模式!

process.env.NODE_ENV

我在 package.json 中创建了以下服务器模拟命令字符串,如下所示

"serve-mock": "vue-cli-service serve --mode mock"

但是当我跑步时

npm run server-mock

process.env.NODE_ENV 仍设置为 development 而不是 mock。我应该在 .env.mock 文件中设置它吗?我假设它将根据作为 mock 传入的模式进行设置?

解答

Vue CLI 的serve命令使用mode选项从特定于模式的.env文件中加载环境变量。如果尚未设置,它还将NODE_ENV设置为三种标准模式(testdevelopmentproduction)之一。但是,如果指定的模式不是标准的(如mock的情况),Vue CLI默认为development

因此,您可以在.env.mock中设置NODE_ENV=mock以绕过上述NODE_ENV设置。

或者,您可以在 *nix shell 中的 NPM 脚本的命令行](https://unix.stackexchange.com/a/56449/17893)上设置[NODE_ENV:

{
  "scripts": {
    "serve-mock": "NODE_ENV=mock vue-cli-service serve"
  }
}

对于跨平台解决方案(包括 Windows),您可以安装cross-env(如评论中的建议),并编辑您的 NPM 脚本如下:

{
  "scripts": {
    "serve-mock": "cross-env NODE_ENV=mock vue-cli-service serve"
  }
}
Logo

前往低代码交流专区

更多推荐