当前位置:   article > 正文

利用vite插件开发,实现工程化打包,建议收藏_vite writebundle

vite writebundle

为什么需要工程化打包?

vue3+vite的工程,普遍都会在项目public文件夹,创建一个config.js文件,存放一些配置态的数据,用于在产品上线后,可能会根据需要修改参数值,从而达到线上配置数据目的。

但是config.js文件中的配置数据 ,都是在工程打包后默认就已经生成。无法做到在打包过程中修改配置。

如果同一个产品出售给另一家公司,但是此公司要求某某功能的审核流程级别只有2级,而当前产品的审核级别默认配置是3级。

怎么办?也许你会想到,工程打包后再修改配置文件不就行了嘛。如果要修改有10个甚至更多的配置呢?修改一次还好,万一是迭代产品,后期维护每打包一次都需要修改哦,那不累死才怪!!!

有没有办法在打包后,vite将config.js文件内容修改呢?答案是有的!

利用vite插件功能,打包时传入一个标记,区分是哪个公司,插件再根据标记写入不同的值到config.js中。

具体实现如下,假设config.js内容是一个审核流程,A公司需要3级审核,B公司只需要2级审核。

  1. // 审核流程
  2. window.zspReviewConfig = {
  3. // 审核级别
  4. "max_level": 3
  5. };

一、编写插件,新建3个文件如下图

 configJsData.js

  1. // public/config.js配置文件
  2. export default {
  3. create(data) {
  4. return `// 审核流程
  5. window.zspReviewConfig = {
  6. // 审核级别
  7. "max_level": ${data.max_level}
  8. };`
  9. }
  10. }

fsUtil.js负责写本地文件

  1. import file from 'fs';
  2. export default {
  3. write(data, buildOutDir) {
  4. const configJsPath = buildOutDir + '/config.js';
  5. console.log('config.js 路径 ---> ', configJsPath)
  6. file.writeFile(configJsPath, data, err => {
  7. if (err) {
  8. console.error('config.js 文件写入失败:' + err.message);
  9. }
  10. console.log('config.js 文件写入成功!');
  11. })
  12. }
  13. }

vite-plugin-public-config.js负责定制A、B公司的默认功能

  1. import fsUtil from "./fsUtil";
  2. import configJsData from "./configJsData";
  3. const pluginName = 'public-config';
  4. export default function publicConfig(projectName) {
  5. // 路径
  6. let buildOutDir = '';
  7. // 功能清单
  8. const data = {max_level: 3}
  9. // 返回的是插件对象
  10. return {
  11. // 名称
  12. name: pluginName,
  13. apply: 'build',
  14. // 启动就调用
  15. buildStart() {
  16. switch (projectName) {
  17. case 'A': // A公司
  18. data.max_level = 3;
  19. break;
  20. case 'B': // B公司
  21. data.max_level = 2;
  22. break;
  23. }
  24. },
  25. writeBundle(options, bundle) {
  26. buildOutDir = options.dir;
  27. },
  28. closeBundle() {
  29. fsUtil.write(configJsData.create(data), buildOutDir);
  30. }
  31. }
  32. }
 

二、修改vite构建器的配置文件

1、引用插件

2、实例化插件,入参工程标记A

3、将A公司vite文件拷贝一份,只需要修改插件处,实例化的入参修改为B即可。

以上就是此次分享内容,创作不易,请关注、转发、看一看。谢谢!!!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/390303
推荐阅读
相关标签
  

闽ICP备14008679号