当前位置: 首页 > news >正文

东莞专业网站设计制作公司佛山最新通知今天

东莞专业网站设计制作公司,佛山最新通知今天,百度软件安装,WordPress 打赏插件1) 背景: 我们项目是2个前端3个后端的配置。前端和每个后端都有需要调试的接口。 因此经常切换vite.congig.js中的proxy后端代理链接,是挺麻烦的。 于是我研究如何能快速切换后端URL,所幸懒人有懒福,我找到了Inquirer 和 fs, 实…

1) 背景:

我们项目是2个前端3个后端的配置。前端和每个后端都有需要调试的接口。
因此经常切换vite.congig.js中的proxy后端代理链接,是挺麻烦的。

于是我研究如何能快速切换后端URL,所幸懒人有懒福,我找到了Inquirer 和 fs,
实现执行 npm start 可直接切换vite.config.js中proxy的代理URL,然后直接启动项目。

在这里插入图片描述

2) inquirer 和 fs npm包

先来说说Inquirer ,Inquirer是一个流行的 Node.js 库,用于构建交互式命令行界面。
fs是用于读取,写入,修改文件的工具。

简单介绍一下他的用法。
目前项目背景:vue: ^3.4.29 inquirer: ^10.0.1

// 需要定义,命令行可选范围
// name是展示在命令行
// value是选中name后可获得相对的value
const targetList = [{name: '张三',value: "\t\t\t\ttarget: 'http://33.33.33.33:3333',",},{name: '李四',value: "\t\t\t\ttarget: 'http://44.44.44.44:4444',",},{name: '王二',value: "\t\t\t\ttarget: 'http://22.22.22.22:2222',",},{name: '麻子',value: "\t\t\t\ttarget: 'http://55.55.55.55:5555',",},
]
// 调用inquirer方法,进行基础配置
const choose = inquirer.prompt([{type: 'list', // 用于提供一个列表选择。用户可以从列表中选择一个选项作为答案。name: 'serve', // 自取名message: '请选择开发环境下需要连接的后端服务', // 展示给用户的标题行choices: targetList, // 选取的列表值default: targetList[0].value // 进入命令行,默认选项}
])

3) 思路

  • 首先使用fs模块读取vite.config.js文件,找到target内容
  • 将我们在命令行选中的值 替换掉 刚刚找到target内容
  • 将替换成功的内容,重新写入vite.config.js文件
  • 在package.json 中npm start 修改命令

4) 完整代码如下:

// nodeTab.js
// Vue2中引入fs模块使用require,Vue3使用import
import fs from 'fs';
// inquirer这个库来创建交互式的命令行界面
import inquirer from 'inquirer';// 需要定义,命令行可选范围
// name是展示在命令函
// value用来替换proxy中代码
const targetList = [{name: '张三',value: "\t\t\t\ttarget: 'http://33.33.33.33:3333',",},{name: '李四',value: "\t\t\t\ttarget: 'http://44.44.44.44:4444',",},{name: '王二',value: "\t\t\t\ttarget: 'http://22.22.22.22:2222',",},{name: '麻子',value: "\t\t\t\ttarget: 'http://55.55.55.55:5555',",},
]
// 去找到target这一行代码
function findTarget(file) {let arr = file.split('\n')let targetStr = ''for (let i = 0; i < arr.length; i++) { // 通过循环找到对应行if (arr[i].includes('target:')) {targetStr = arr[i] // 赋值一下,找到了break}}return targetStr
}
// 选择方法
async function selectServe() {try {// 在命令行进行选择const choose = await inquirer.prompt([{type: 'list',name: 'serve',message: '请选择开发环境下需要连接的后端服务',choices: targetList,default: targetList[0].value}])// 读取了文件vite.config.js为string格式let file = fs.readFileSync('./vite.config.js', 'utf-8')// 找到target这一行let proxyTarget = findTarget(file)// 替换我们新选的后端服务地址const newFile = file.replace(proxyTarget, choose.serve)// 重新写入vite.config.jsfs.writeFileSync('./vite.config.js', newFile)} catch (error) {throw error}
}
selectServe()
// package.json
// 这里就展示部分代码,在start启动项目前,先执行node program/nodeTab.js这个脚本"scripts": {"test": "echo \"Error: no test specified\" && exit 1","dev": "vite  --mode development","build": "vite build --mode production","builds": "node program/ssh.js && vite build --mode production","start": "node program/nodeTab.js && vite --mode production","build:env": "vite build --mode development"},

如有不足,欢迎指正。

不要忽视你达成的每个小目标,它是你前进路上的垫脚石。冲!

http://www.yayakq.cn/news/795116/

相关文章:

  • 人才网站建设方案徐州市政工程招标信息
  • 推广新网站网站开发的各个阶段及其完成的任务
  • 拟定网站建设合同的工作过程记录威海房产网
  • 软件科技公司网站模板下载线上网站建设
  • 河西做网站公司手机网站建站cms
  • 乐清网站建设推广wifi如何咨询网络服务商
  • 如何将百度收录网站平面设计案例网站
  • 中国工信备案查询网站wordpress被挂马 广告
  • 红色系网站太原做网络推广的公司
  • 建设医院网站ppt模板下载成都网站设计报告书
  • 海洋公园网站建设方案办公室装修设计怎么设计
  • 网站开发的编程语言长沙做最好网站
  • 做代理的项目在哪个网站旅游景点网站建设规划书
  • 九一制作厂网站贵州建设厅考试网站二建成绩查询
  • 公司建站模版wordpress 添加导航菜单
  • 成都市住房和城乡建设局网站沧州网站建设的集成商
  • 网站开发与维护是学什么龙岗区住房和建设局网站
  • 先买域名不建设网站吗网站产品动效怎么做
  • 邯郸网站建设策划方案wordpress 个人国内收款
  • 网站引导页在线做wordpress+删除版权
  • 佛山北京网站建设网站硬件费用
  • 设计网站p站湖北专业的网瘾戒除学校地址
  • 30天网站建设全程实录 pdfwordpress首行缩进2字符怎么设置
  • 以下不属于网站建设优化长沙建设信息网站
  • 网站改版 seo电子商务网站建设与维护总结
  • 四川省建设厅网站官网个人登录定陶网站建设
  • 网站设计影响seo的因素企业网站设置费用
  • 网站上怎么做星星评分快捷的赣州网站建设
  • 自助建子站外贸公司网站设计哪家好
  • 建设模板网站报价都是做面食网站