vue3动态修改打包后的请求路径的操作代码

要动态修改打包后的请求路径,需要通过修改Vue CLI中的webpack配置实现。下面是具体的步骤:

  1. 打开Vue项目所在目录,找到vue.config.js文件。如果该文件不存在则需要手动创建。

  2. 使用process.env.BASE_URL获取当前项目的基础路径,然后将该路径保存到变量中,这个变量可以在需要的地方被引用。

javascript
const baseUrl = process.env.BASE_URL;

  1. 找到webpack生成的HTML文件所需要的代码的位置,对代码进行修改。在修改之前先要获取该位置的loader,对于vue-cli生成的项目来说,这个位置的代码位于index.html模板中,并且使用了html-webpack-plugin插件以及内置的raw-loader

javascript
config.plugin('html').tap(args => {
args[0].template = require('raw-loader!./public/index.html');
return args;
});

  1. 修改该位置的代码,将其中的请求路径替换为打包后的路径。如下面的示例所示,将原本的url(../image/logo.png)修改为url(${baseUrl}/image/logo.png)

javascript
config.plugin('html').tap(args => {
args[0].template = require('raw-loader!./public/index.html').replace(
/url\(\.\.\/image/g,
`url(${baseUrl}/image`
);
return args;
});

  1. 使用变量引用需要动态修改的路径。在组件中使用变量引用路径时需要提前对变量进行定义,定义语句可以放在Vue实例之前。

```javascript
const baseUrl = process.env.BASE_URL;

new Vue({
router,
render: h => h(App)
}).$mount("#app");
```

下面是另外一个示例,在vue.config.js中将图片路径替换成CDN地址:

const baseUrl = process.env.BASE_URL;

module.exports = {
  chainWebpack: config => {
    const svgRule = config.module.rule("svg");
    svgRule.uses.clear();
    svgRule
      .use("vue-svg-loader")
      .loader("vue-svg-loader")
      .options({
        svgo: {
          plugins: [{ removeViewBox: false }, { removeXMLNS: true }]
        }
      })
      .end();
  },
  configureWebpack: {
    module: {
      rules: [
        {
          test: /\.(png|jpe?g|gif|webp)(\?.*)?$/,
          use: [
            {
              loader: "url-loader",
              options: {
                limit: 4096,
                fallback: {
                  loader: "file-loader",
                  options: {
                    name: "img/[name].[hash:8].[ext]"
                  }
                }
              }
            }
          ]
        }
      ]
    }
  },
  pluginOptions: {
    "style-resources-loader": {
      preProcessor: "scss",
      patterns: []
    }
  },
  chainWebpack: config => {
    config.module
      .rule("vue")
      .use("vue-loader")
      .tap(options => {
        options.compilerOptions.preserveWhitespace = true;
        return options;
      });
  },
  css: {
    loaderOptions: {
      sass: {
        additionalData: `@import "~@/assets/main.scss";`
      }
    }
  },
  pwa: {
    name: "vue-cli4-pwa-template",
    themeColor: "#4DBA87",
    msTileColor: "#000000",
    appleMobileWebAppCapable: "yes",
    appleMobileWebAppStatusBarStyle: "black",
    manifestOptions: {
      icons: [
        {
          src: "./img/icons/android-chrome-192x192.png",
          sizes: "192x192",
          type: "image/png"
        },
        {
          src: "./img/icons/android-chrome-512x512.png",
          sizes: "512x512",
          type: "image/png"
        },
        {
          src: "./img/icons/android-chrome-maskable-192x192.png",
          sizes: "192x192",
          type: "image/png",
          purpose: "maskable"
        },
        {
          src: "./img/icons/android-chrome-maskable-512x512.png",
          sizes: "512x512",
          type: "image/png",
          purpose: "maskable"
        }
      ]
    },
    workboxOptions: {
      // offline page
      offlineGoogleAnalytics: true,
      runtimeCaching: [
        {
          urlPattern: new RegExp(baseUrl),
          handler: "CacheFirst",
          options: {
            cacheName: "my-cache",
            expiration: {
              maxEntries: 10,
              maxAgeSeconds: 300
            }
          }
        }
      ]
    }
  },

  // 修改打包后的资源路径
  publicPath: baseUrl,

  // 开启gzip压缩
  productionSourceMap: false,
  configureWebpack: config => {
    if (process.env.NODE_ENV === "production") {
      config.plugins.push(new CompressionPlugin());
    }
  }
};

以上就是Vue 3中动态修改打包后的请求路径的完整攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:vue3动态修改打包后的请求路径的操作代码 - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • SpringBoot+Vue.js实现前后端分离的文件上传功能

    以下是”SpringBoot+Vue.js实现前后端分离的文件上传功能”的完整攻略: 1. 前置条件 已安装好Java开发环境和Maven构建工具 已创建好一个基于SpringBoot的Web项目 已安装好Vue.js前端框架 2. 实现后端文件上传功能 2.1. 添加Multipart依赖 在项目的pom.xml文件中添加Multipart依赖: <…

    Vue 2023年5月28日
    00
  • vue中的H5移动端项目 真机测试配置方式

    配置Vue H5移动端项目在真机上进行测试有以下几个步骤: 步骤一:检查移动设备与电脑是否连接同一WiFi或有线网络 确保移动设备与调试电脑处于同一WiFi或有线网络环境中,且两者可以互相访问。这可以使用ping命令检查网络是否正常。 示例: 假设移动设备的IP地址为192.168.0.100,调试电脑的IP地址为192.168.0.101。在电脑的命令行中…

    Vue 2023年5月28日
    00
  • vue props对象validator自定义函数实例

    接下来我将为你详细讲解“vue props对象validator自定义函数实例”的完整攻略。 1.什么是Vue props对象validator自定义函数? 在Vue组件开发中,我们可以使用props来定义组件属性,props是组件接受外部参数的接口,其基本形式如下: Vue.component(‘my-component’, { props: { prop…

    Vue 2023年5月28日
    00
  • vue中的公共方法调用方式

    Vue中的公共方法调用方式主要有以下几种: 全局方法 Vue提供了Vue.prototype上的属性或者方法,可以直接通过Vue实例调用。例如: Vue.prototype.$myMethod = function() { console.log(‘This is a global method’) } // 在组件中调用 this.$myMethod() …

    Vue 2023年5月28日
    00
  • Vue中接收二进制文件流实现pdf预览的方法

    要在Vue中接收二进制文件流实现pdf预览,需要考虑以下几个步骤: 发送请求获取二进制文件流 首先,需要使用Vue的异步请求库,例如axios,发送获取二进制文件流的请求。请求返回的数据类型是一个arraybuffer,需要注意设置responseType为arraybuffer。 示例代码: axios.get(‘http://example.com/fi…

    Vue 2023年5月28日
    00
  • vue webpack打包优化操作技巧

    下面是关于Vue Webpack打包优化的完整攻略。 为什么需要打包优化? Vue Webpack打包过程通常比较复杂,对于大型项目而言,打包过程中可能会遇到各种各样的问题。我们需要对Webpack打包进行优化,以提高项目的性能和稳定性。通常需要考虑以下几个方面: 减少打包体积 减少打包时间 提高页面加载速度 稳定可靠性 打包优化操作技巧 1. 优化load…

    Vue 2023年5月28日
    00
  • 详解vue+vuex+koa2开发环境搭建及示例开发

    详解vue+vuex+koa2开发环境搭建及示例开发 介绍 本文将详细介绍在使用Vue.js时,如何搭建一个完整的开发环境来实现前后端分离,使用Vuex进行状态管理,采用Koa2进行后端开发,并提供两个实例说明。 前置条件 在开始之前,确保你已经安装好了以下环境: Node.js npm 本文中我们将使用Vue CLI 3来搭建我们的开发环境。如果你还没有安…

    Vue 2023年5月28日
    00
  • vue项目代码格式规范设置参考指南

    下面我将详细讲解“vue项目代码格式规范设置参考指南”的完整攻略。 为什么需要代码格式规范? 在团队协作开发过程中,每个人的代码习惯存在差异,这样会导致代码风格混乱、不统一,给团队协作带来一定的困难,而代码格式规范可以统一代码格式,提高代码的可读性和可维护性,从而提高开发效率、降低维护成本。 选择合适的代码格式规范 选择一种合适的代码格式规范很重要,好的代码…

    Vue 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部