为什么在cmd中使用node可以获取process.env,而在vue开发中无法获取node中的process.env内容?

仅以开发环境为例

我在webpack.dev.conf.js 中看到了这行代码,

new webpack.DefinePlugin({
      'process.env': require('../config/dev.env')
    }),

如果有这行代码 ,我在vue中就可以获取到 在config/dev.env.js 中配置的内容,

如果我把这行代码注释掉,则获取process.env为一个{}空对象,

可是node中的process.env 不应该是 系统中的环境变量吗

process 对象是一个全局变量,提供 Node.js 进程的有关信息以及控制进程。 因为是全局变量,所以无需使用 require()。

我既然注释掉了那行代码,就代表我没有覆盖他的值,为什么获取到的是一个空对象,而不是当前操作系统中的环境变量?

阅读 8.8k
3 个回答

vue是运行在浏览器端端,而process是node环境端,所以可以在基于node的打包编译的过程是可以使用process,而不能在vue里单独使用

类似的问题已经有人在sef问过了,你可以参考下:https://segmentfault.com/q/1010000017204576

新手上路,请多包涵

是这样的,vue是运行在web上的,不存在node的变量或者api(包括其中的process)

通过webpack.base.config.jsmodule.exports.node的配置使node的api在web端有效,所以在web端不存在process.env对应的环境变量,只是一个空对象,所以方便挂载是生产环境还是开发环境的NODE_ENV

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题