VueJs各个版本— 判断当前是开发、生产环境

VueJs各个版本— 判断当前是开发、生产环境

vue项目分类

现存的vue项目可分为

  • VueCLI2 创建的项目

  • Vue CLI 3 和 Vue CLI 4 创建的项目

下面就讲讲各个环境创建下的开发和生产环境如何判断。

VueCLI2

在 Vue CLI 2 中,完整的目录结构如下所示:

- my-project/
  |- build/               # 构建相关的配置文件
  |   |- build.js         # 构建的入口文件
  |   |- check-versions.js # 检查版本的脚本
  |   |- utils.js         # 构建工具函数
  |   |- vue-loader.conf.js # Vue Loader 的配置文件
  |   |- webpack.base.conf.js # 基础的 Webpack 配置文件
  |   |- webpack.dev.conf.js # 开发环境的 Webpack 配置文件
  |   |- webpack.prod.conf.js # 生产环境的 Webpack 配置文件
  |- config/              # 配置文件
  |   |- dev.env.js       # 开发环境的配置
  |   |- index.js         # 主要的配置文件
  |   |- prod.env.js      # 生产环境的配置
  |- node_modules/        # 项目依赖的第三方模块
  |- src/                 # 源代码目录
  |   |- assets/          # 静态资源文件(图片、样式等)
  |   |- components/      # 组件文件
  |   |- router/          # 路由配置文件
  |   |- views/           # 视图文件
  |   |- App.vue          # 根组件
  |   |- main.js          # 入口文件
  |- static/              # 静态资源文件(不会被 webpack 处理)
  |- test/                # 测试文件
  |- .babelrc             # Babel 配置文件
  |- .editorconfig        # 编辑器配置文件
  |- .eslintignore        # ESLint 忽略配置文件
  |- .eslintrc.js         # ESLint 配置文件
  |- .gitignore           # Git 忽略配置文件
  |- index.html           # HTML 模板文件
  |- package.json         # 项目配置文件
  |- README.md            # 项目说明文件

1,判断样例

(1)有时我们需要在代码中判断目前项目是处于开发环境、还是生产环境,然后根据不同环境执行不同的逻辑代码。下面是一个简单的样例:

if (process.env.NODE_ENV === "development") {
  alert("开发环境");
}else {
  alert("生产环境");
}

(2)如果在开发环境(执行 npm run dev 的时候),则显示如下结果:

在这里插入图片描述

(3)如果在生产环境(执行 npm run build 的时候),则显示如下结果:
在这里插入图片描述

2,判断原理

(1)在项目的 config 文件夹下有 dev.env.js 和 prod.env.js 两个文件,它们分别配置开发环境的变量和生产环境的变量。

  |- config/              # 配置文件
  |   |- dev.env.js       # 开发环境的配置
  |   |- index.js         # 主要的配置文件
  |   |- prod.env.js      # 生产环境的配置

(2)打开 dev.env.js 文件,可以看到 NODE_ENV 变量值为 development。

'use strict'
const merge = require('webpack-merge')
const prodEnv = require('./prod.env')

module.exports = merge(prodEnv, {
  NODE_ENV: '"development"'
})

(3)打开 prod.env.js 文件,可以看到 NODE_ENV 变量值为 production。

'use strict'
module.exports = {
  NODE_ENV: '"production"'
}

Vue CLI 3 和 Vue CLI 4

在 Vue CLI 3 和 Vue CLI 4 中,目录结构基本上是相同的

- my-project/
  |- public/              # 静态资源文件(不会被 webpack 处理)
  |- src/                 # 源代码目录
  |   |- assets/          # 静态资源文件(图片、样式等)
  |   |- components/      # 组件文件
  |   |- router/          # 路由配置文件
  |   |- views/           # 视图文件
  |   |- App.vue          # 根组件
  |   |- main.js          # 入口文件
  |- tests/               # 测试文件
  |- .browserslistrc      # 浏览器兼容性配置文件
  |- .eslintrc.js         # ESLint 配置文件
  |- babel.config.js      # Babel 配置文件
  |- package.json         # 项目配置文件
  |- README.md            # 项目说明文件

1,判断样例

在 Vue CLI 3 中,可以通过 process.env.NODE_ENV 来判断当前的环境是开发环境还是生产环境。

在开发环境中,process.env.NODE_ENV 的值会被设置为 'development'。你可以在代码中使用条件语句来根据当前环境执行不同的逻辑,例如:

if (process.env.NODE_ENV === 'development') {
  // 在开发环境中执行的逻辑
} else {
  // 在生产环境中执行的逻辑
}

在生产环境中,process.env.NODE_ENV 的值会被设置为 'production'。你可以根据需要在不同的环境中执行不同的代码,例如在开发环境中启用调试工具或者在生产环境中进行代码优化。

2, 判断原理

需要注意的是,process.env.NODE_ENV 的值是在构建过程中由 Vue CLI 自动生成的,你不需要手动设置它。在开发环境中,你可以通过 npm run serve 启动开发服务器,而在生产环境中,你可以通过 npm run build 构建项目。在构建过程中,Vue CLI 会自动设置 process.env.NODE_ENV 的值。

手动设置-json文件

在项目根目录下的 package.json 文件中,有一个 scripts 字段,其中定义了一些脚本命令。你可以在这些脚本命令中设置 NODE_ENV 环境变量。

"scripts": {
  "build:prod": "cross-env NODE_ENV=production vue-cli-service build"
}

手动设置- .env 文件

单个 .env 文件

项目的根目录下,创建一个名为 .env 的文件,并在其中设置环境变量

NODE_ENV=production

需要注意的是,.env 文件中定义的环境变量会被自动注入到构建过程中。在开发环境中,.env 文件中的变量会被注入到 process.env 对象中,而在生产环境中,这些变量会被用于构建过程。

多个 .env 文件

如果你想在不同的环境中使用不同的 .env 文件,可以创建多个 .env 文件,例如 .env.development.env.production,然后在对应的环境中使用不同的文件。Vue CLI 会根据当前的环境自动加载对应的 .env 文件。

.env.development

NODE_ENV=development

.env.production

NODE_ENV=production
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Vue项目中,处理生产环境跨域可以有多种方法。下面是一些常见的处理方式: 方法一:配置后端代理 如果后端能够处理跨域请求,可以通过配置后端代理来解决跨域问题。具体步骤如下: 1. 找到项目的配置文件,一般是`vue.config.js`文件。 2. 在该文件中,添加一个`devServer`配置项,并设置`proxy`属性为需要代理的跨域地址。例如: ```javascript module.exports = { devServer: { proxy: { '/api': { target: 'http://example.com', // 跨域地址 changeOrigin: true, pathRewrite: { '^/api': '' // 将请求路径中的/api替换为空 } } } } } ``` 这样,当前端发起请求时,会将以`/api`开头的请求代理到`http://example.com`跨域地址。 方法二:使用JSONP JSONP是一种前端解决跨域问题的方法,它利用了script标签没有跨域限制的特点。具体步骤如下: 1. 在需要处理跨域的页面中引入一个公共方法。例如,在`utils`目录下创建一个`index.js`文件,并在其中定义一个`httpRequest`方法。 2. 在该方法中,创建一个script标签,将跨域地址作为src属性值,并通过回调函数获取到数据。 ```javascript export function httpRequest(url, params, callback) { const script = document.createElement('script'); script.src = url; document.body.appendChild(script); window.callbackFunction = function(data) { callback(data); document.body.removeChild(script); } } ``` 3. 在需要发送跨域请求的地方,调用`httpRequest`方法,并传入跨域地址和回调函数。 方法三:配置Nginx反向代理 如果你的项目使用了Nginx作为服务器,可以通过配置Nginx反向代理来解决跨域问题。具体步骤如下: 1. 找到Nginx的配置文件,一般是`nginx.conf`。 2. 在`http`配置块内,添加一个`server`配置块,并设置`location`为需要处理跨域的地址。 3. 在该`location`配置块内,使用`proxy_pass`指令将请求代理到跨域地址。例如: ``` http { server { location /api { proxy_pass http://example.com; // 跨域地址 } } } ``` 这样,当前端发起以`/api`开头的请求时,Nginx会将请求代理到`http://example.com`跨域地址。 以上是几种常见的处理Vue项目生产环境跨域的方法,你可以根据实际情况选择适合你的方式进行处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wusp1994

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值