怎么才能判断vue当前运行的是什么环境呢如果没有*.env.js文件?

在我的Vue项目中,这里没有,dev.env.jsprod.env.js文件。

这里只有webpack.base.config.js, webpack.dev.config.jswebpack.prod.config.js文件:

图片描述

那么现在我应该怎么才能判断vue当前运行的是什么环境呢?

阅读 11.3k
2 个回答

一样的啊。dev 表示开发环境配置,prod
看这个吧Webpack 配置详解(含 4)——关注细节

如果我们需要在 webpack 中判断当前环境,还需要单独的设置 process.env.NODE_ENV = 'production',这也是我们在对应配置文件中第一行做的事情。需要在 业务代码(vue)部分判断需要配合new webpack.DefinePlugin插件

不太理解你的问题描述。单看你的问题标题,你应该理解一下环境变量跟 webpack 以及 Vue、项目中的 js 是怎么关联起来的。

环境变量的传递路径:命令行命令 -> Webpack -> Webpack 加载的各种 js 和 Vue 文件

  1. 你的 nodejs 运行命令比如 NODE_ENV=production npm run dev,其中 NODE_ENV=production 就是环境变量,一般用来代表生产环境,其中 npm run dev 就是执行 package.json scripts 中的 dev 那一项,一般是运行你的 webpack 脚本,比如 webpack-dev-server --inline --hot
  2. webpack 接收到 NODE_ENV=production 的命令行变量(process.env.NODE_ENV 来获取),放到 DefinePlugin 的配置中,比如

    new webpack.DefinePlugin({
          'process.env': {
            NODE_ENV: JSON.stringify(process.env.NODE_ENV || 'development')
          }
        }),
  3. Webpack 加载的所有 vue js 都可以通过 process.env.NODE_ENV 得到变量值,比如 console.log(process.env.NODE_ENV === 'production')
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题