当前位置: 首页 > 知识库问答 >
问题:

vue.js - vue项目打包,怎么实现不同环境配置不同的配置呢?

晁国发
2024-03-26

vue项目打包,怎么实现不同环境配置不同的配置呢?

例如:

// 在vue.config.js中设置了module.exports = {……    configureWebpack: config => {        if(process.env.NODE_ENV === 'production'){            ……        }else if(process.env.NODE_ENV === 'xxxx'){ // 自定义环境                    }    }}

打包命令 npm run xxxx

可以进入‘xxx’处配置,执行自定义配置

共有2个答案

赫连靖琪
2024-03-26

看情况应该是VueCLI创建的项目,可以在根目录下创建对应的 .env.xxx 环境变量文件。打开对应的环境变量文件在文件头上书写 NODE_ENV = xxx 就行了。
但是 NODE_ENV 变量一般会被 webpack 之类的工具所使用,如果设置的是自定义属性,可能会有问题。所以我的建议是另起一个变量名比如说 MY_PROJECT_ENV = xxx (可能需要 VUE_APP_ 前缀) 然后再在 vue.config.js 中使用。
然后启动项目的时候就可以直接用 npm run serve --mode xxx 来指定环境变量了。

模式和环境变量 | Vue CLI

申屠昆
2024-03-26

在 Vue 项目中,你可以使用不同的环境变量来配置不同的打包设置。这些环境变量可以在 vue.config.js 文件中使用,就像你在示例中所做的那样。要设置和使用自定义环境,你可以遵循以下步骤:

  1. 定义环境变量
    在你的项目根目录下创建一个 .env 文件(如果还没有的话)。在这个文件中,你可以定义环境变量。例如,要定义一个名为 VUE_APP_CUSTOM_ENV 的环境变量,你可以在 .env 文件中添加以下行:

    VUE_APP_CUSTOM_ENV=custom

请注意,只有以 VUE_APP_ 开头的变量才会被 webpack.DefinePlugin 静态地嵌入到客户端侧的代码中。

  1. 修改 vue.config.js
    vue.config.js 文件中,你可以根据环境变量来修改配置。例如,你可以检查 process.env.VUE_APP_CUSTOM_ENV 的值,然后基于这个值来应用不同的配置。

    module.exports = {  configureWebpack: config => {    if (process.env.NODE_ENV === 'production') {      // 生产环境配置    } else if (process.env.VUE_APP_CUSTOM_ENV === 'custom') {      // 自定义环境配置    }  }}
  2. 创建自定义打包命令
    要在 npm 中创建自定义的打包命令,你可以在 package.json 文件的 scripts 部分添加一个命令。例如,要创建一个名为 xxxx 的命令,你可以这样做:

    "scripts": {  "xxxx": "vue-cli-service build --mode custom"}

这里的 --mode 参数允许你指定一个除了 developmentproduction 之外的模式。当使用这个命令时,Vue CLI 会加载与这个模式相关的环境变量(例如,.env.custom)。

  1. 创建环境文件
    为了支持你的自定义环境,你需要创建一个与你的模式名称相对应的环境文件。在这个例子中,你需要创建一个 .env.custom 文件,并在其中定义你的环境变量。

    VUE_APP_SOME_VARIABLE=some-value-for-custom-env

当运行 npm run xxxx 命令时,Vue CLI 会自动加载 .env.custom 文件中的环境变量。

  1. 运行自定义命令
    现在,你可以通过运行 npm run xxxx 命令来触发你的自定义打包配置。这个命令会设置 NODE_ENVcustom,并且加载 .env.custom 文件中的环境变量。

请确保你的环境变量和文件名都符合 Vue CLI 的约定,这样它们才能被正确地加载和使用。如果你遵循这些步骤,你应该能够在不同的环境配置中使用不同的打包设置。

 类似资料:
  • 本文向大家介绍Maven profile实现不同环境的配置管理实践,包括了Maven profile实现不同环境的配置管理实践的使用技巧和注意事项,需要的朋友参考一下 前言 目前,企业项目的开发过程中,往往会使用配置文件来做一些配置项来实现项目部署的灵活性,避免硬编码的方式在环境变化时需要对代码进行重新编译。但是往往在项目周期中存在着各种环境:如开发环境、测试环境以及生产环境等,而且在不同的运行环

  • unplugin-vue-router怎么配置? 报错:[Vue Router warn]: No match found for location with path "/index" vite.confing.ts src/views/index/vue

  • 本文向大家介绍详解springboot + profile(不同环境读取不同配置),包括了详解springboot + profile(不同环境读取不同配置)的使用技巧和注意事项,需要的朋友参考一下 具体做法: 不同环境的配置设置一个配置文件,例如:dev环境下的配置配置在application-dev.properties中;prod环境下的配置配置在application-prod.prope

  • 问题内容: 如何管理不同环境的配置变量/常量? 这可能是一个示例: 我的其余API可以访问,但是在Git版本控制下使用相同代码工作的朋友在Tomcat上部署了该API 。 假设我们有这样的东西: 如何根据环境动态注入API端点的正确值? 在PHP中,我通常使用文件来执行此类操作,将基本​​配置文件(config.xml)与用户名称识别的本地环境配置文件合并。但是我不知道如何在JavaScript中

  • 本文向大家介绍详解vue.js根据不同环境(正式、测试)打包到不同目录,包括了详解vue.js根据不同环境(正式、测试)打包到不同目录的使用技巧和注意事项,需要的朋友参考一下 1、在build文件夹中创建testing.js文件 2、修改config文件夹中的prod.env.js文件 3、在package.json文件中添加npm run testing命令 4、config ->index.j

  • 我有一个Maven项目,其中包括一个Maven插件(Liquibase Maven插件),它公开了不同的目标。其中两个目标(update和diff)需要在它们之间发生冲突的不同参数(因为两者的语义不同),因此我需要在两个目标执行中赋予Maven不同的属性。 有没有办法在Maven中为不同的目标传递不同的配置?