首页 > 其他分享 >vite+vue3项目发布到手机

vite+vue3项目发布到手机

时间:2023-09-26 23:34:43浏览次数:29  
标签:axios import baseUrl 192.168 api vue3 手机 path vite

1.修改vite.config.js

export default defineConfig({
  plugins: [
    vue(),
  ],
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url))
    }
  },
  server:{
    hmr: true,

    host:"0.0.0.0",
    port: 5325,

    proxy: {
      '^/api/': {
        target: 'http://192.168.1.20:8599/',
        // target: 'http://192.168.0.253:8599/',
        changeOrigin: true, //跨域不重要,因为自己的APP没有edge那些限制
        rewrite: (path) => path.replace(/^\/api/, "")
      }
    }
  },
  base:'./', //插入base,修改基础地址为./ 否则生成的文件只有/开头
})

2.修改./router/index.js

const router = createRouter({
  // history: createWebHistory(import.meta.env.BASE_URL),
  history: createWebHashHistory(import.meta.env.BASE_URL), //history改为hash模式
  routes: [
    {
      path: '/',
      name: 'home',
      component: HomePage
    },

  ]
})
export default router

3.单机打包

npm run build 生成 dist 项目文件夹,其中的.git文件夹没用
Hbuilder里新建H5项目,将dist文件夹中的所有文件直接复制到Hbuilder项目根目录
然后在Hbuilder中可以启动自带浏览器运行index.html了
但现在的问题是无法连接服务器.

   proxy: {
     '^/api/': {
       target: 'http://192.168.1.20:8599/',
       // target: 'http://192.168.0.253:8599/',
       changeOrigin: true,
       rewrite: (path) => path.replace(/^\/api/, "")
     }
   }

这段配置像是没有运行.决定修改axios的baseURL

4.修改api接口(蠢办法,重写所有接口)

随便建个js文件建立axios实体类,并配置

export const phoneAxios = axios.create({
  baseURL: 'http://192.168.1.20:8599',
  timeout: 2000,
})

然后接口调用的.vue里不再使用import {axios} from 'axios',换成import {phoneAxios} from '../../utils/tool'

axios.post("/api/preOutWage/phoneGetTodayOutWageList",{
    phoneToken:getToken()
  }).then(res=>{....

//修改为
phoneAxios.post("/preOutWage/phoneGetTodayOutWageList",{
    phoneToken:getToken()
  }).then(res=>{

重新打包并放入Hbuilder即可正常打包成APP运行

更进一步

将baseUrl改为APP内配置项 方便将来服务器更换IP地址 不需要重新生成app
由于不会在js文件中使用pinia还不破坏piniaPersist. 所以使用原生localStorage

axios实体类修改为

export const phoneAxios = axios.create({
  baseURL: localStorage.getItem("baseUrl"),
  timeout: 2000,
})

configration.vue里简单放个控件绑一下

const url = ref("")
url.value = localStorage.getItem("baseUrl")
function saveBaseUrl(){
  localStorage.setItem("baseUrl",url.value)
}

将来修改好baseUrl后只需要重启一下app就可以正常使用了

标签:axios,import,baseUrl,192.168,api,vue3,手机,path,vite
From: https://www.cnblogs.com/zgxxer/p/17731572.html

相关文章

  • vite_vite.config.js配置代理与websocket代理
    exportdefaultdefineConfig({server:{proxy:{"/proxy":{target:"http://121.10.140.87",//线上服务器IP地址changeOrigin:true,ws:true,rewrite:(p......
  • vite中静态资源的处理
    public目录public目录是存放静态资源的一种方式。2.项目初始化时默认public作为静态资源服务的文件夹。我们可以在vite.config.js中修改publicDir。3.该目录中的文件开发期间在/处提供,并在构建期间将public文件夹下的文件(不包含public本身)复制到outDir的根目录。4.public......
  • 成功实现FaceTime语音,FaceTime视频,FaceTime数据筛选,检测手机号是否开通FaceTime的
    FaceTime是苹果公司iOS和macOS(以前称MacOSX或OSX)内置的一款视频通话软件,通过Wi-Fi或者蜂窝数据接入互联网,在两个装有FaceTime的设备之间实现视频通话。其要求通话双方均具有装有FaceTime的苹果设备,苹果ID以及可接入互联网的3G/4G/5G或者Wi-Fi网络。 一、Windows电脑上部署......
  • Vue3 引入 Element Plus
    ElementPlus简介ElementPlus是一个基于Vue3的UI组件库,其设计原则可分为一致(Consistency)、反馈(Feedback)、效率(Efficiency)、可控(Controllability)四个方面。目前ElementPlus可使用的UI组件种类丰富,除了按钮、边框、icon等基本组件,还可以在项目中引入表单组件、数据展示组件、导航......
  • vue3 + mark.js | 实现文字标注功能
    页面效果具体实现新增1、监听鼠标抬起事件,通过window.getSelection()方法获取鼠标用户选择的文本范围或光标的当前位置。2、通过选中的文字长度是否大于0或window.getSelection().isCollapsed(返回一个布尔值用于描述选区的起始点和终止点是否位于一个位置,即是否框选了)来......
  • 使用vite插件进行低代码平台自定义开发(手机版自定义范例)
    前言Youtube上的前端网红「Theo」在React文档仓库发起了一个Pullrequest,号召React文档不要再默认推荐CRA(createreactapp),而是应该将Vite作为构建应用的首选。vite的影响力已经从vue蔓延到了react,可见在前端工程化开发中,它已经越来越流行,是时候该从webpack切换到vite了。为什么......
  • 使用vite插件进行低代码平台自定义开发(手机版自定义范例)
    前言Youtube上的前端网红「Theo」在React文档仓库发起了一个Pullrequest,号召React文档不要再默认推荐CRA(createreactapp),而是应该将Vite作为构建应用的首选。vite的影响力已经从vue蔓延到了react,可见在前端工程化开发中,它已经越来越流行,是时候该从webpack切换到vite了。为......
  • 关于vite/cli构建项目的区别&环境变量配置&关于接口地址
    ####区别**Vite:**1.**开发服务器启动速度:**Vite通过利用ES模块的特性,实现了快速的冷启动和热模块替换。这意味着在开发环境中,启动开发服务器和应用程序的重新加载速度更快。1.**即时的按需编译:**Vite在开发过程中只会编译和打包当前正在编辑的文件,而不会重新构建整个......
  • vue3 模糊搜索 不区分大小写 多选框 element plus
    ```javascript<divclass="select-part"ref="selectRef"><divclass="check-type"><inputtype="text"class="check-type-title":placeholder="placeholder"@focus="onFo......
  • Vue3 组件基础:轻松掌握前端开发新技能!
    基本实例这里有一个Vue组件的示例://创建一个Vue应用constapp=Vue.createApp({})//定义一个名为button-counter的新全局组件app.component('button-counter',{data(){return{count:0}},template:`<button@click="count++">......