IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> vue.config.js文件获取异步数据 -> 正文阅读

[JavaScript知识库]vue.config.js文件获取异步数据

作者:recommend-item-box type_blog clearfix

需求介绍

  • 需要资源上传腾讯云,希望上传的密钥是封装的密文
  • 这里密钥需要请求接口获取,但是打包项目的时候就会报错找不到密钥
  • 所以需要在vue.config.js文件里面异步数据

项目应用相关插件版本

"vue": "^2.6.11",
"@vue/cli-service": "~4.5.0",

涉及知识点

  • vue 注册命令
  • vue.config.js文件 获取异步数据

逻辑实现

注册命令

  • 新增文件serve.prehandle.js,
  • 在文件内部获取异步数据并赋值给全局变量secretKey
  • 在注册命令之后再进行打包,打包完成之后结束进程
module.exports = (api, options) => {
const secretKey = new Promise((resolve, reject)=>{
	resolve('yan')
})
// 注册命令
  api.registerCommand(
    "secretKey",
    {
      description: "get secretKey", // 命令的注释
      usage: "vue-cli-service secretKey", // 命令用法说明
    },
    async (args) => {
      const def = await secretKey()
      process.secretKey = def; // 这里将异步结果赋值给全局变量secretKey
      // 获取到全局变量之后再执行打包命令
      await api.service.run("build", args).catch(() => process.exit(1));
      // 打包完成之后结束进程
      process.exit();
    }
  );
};

vue.config.js文件使用chainWebpack支持异步数据

  • process.secretKey异步获取的数据同原来数据组合
const CosPlugin = require("cos-webpack");
const cosPlugin = new CosPlugin({
  bucket: "r*****",
  region: "**",
  path: '***',
});

// process.secretKey即异步获取的数据
module.exports = {
	chainWebpack: (config) => {
	 config
	      .plugin(CosPlugin)
      	  .use(CosPlugin, [cosPlugin, process.secretKey])
	      .tap((args) => {
	        args[0].options = { ...args[0], ...args[1] };
	        return [args[0]]; // 返回的结合数据
	      });
	}
}

设置启动命令

  • package.json文件配置,在scripts 里面配置打包命令
  • 执行该打包命令就会执行新加的注册命令secretKey
  • 配置vuePlugins为命令secretKey指定文件路径
// 这里 secretKey --mode production 就是新加的命令
"scripts": {
    "build": "vue-cli-service secretKey --mode production",
  },
  "vuePlugins": {
    "service": [
      "serve.prehandle.js"
    ]
  },

参考

https://lequ7.com/guan-yu-vuecli4vueconfigjs-zhong-chainwebpack-zhi-chi-yi-bu-shu-ju.html
https://cli.vuejs.org/dev-guide/plugin-dev.html#modifying-existing-cli-service-commandx

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-04-23 10:46:47  更:2022-04-23 10:47:44 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 1:05:42-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码