最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用vite發(fā)布app存在的所有問(wèn)題解決方法

 更新時(shí)間:2023年06月26日 11:42:46   作者:longda0_o  
最近項(xiàng)目中使用了vue3+vite開(kāi)發(fā)一個(gè)App項(xiàng),下面這篇文章主要給大家介紹了關(guān)于使用vite發(fā)布app存在的所有問(wèn)題的解決方法,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下

1.打包項(xiàng)目的時(shí)候,dist里的css和js等文件都在assets,沒(méi)分css和js文件,需要在vite.config.ts配置。

build: {
    rollupOptions: {
      output: {
        // 最小化拆分包
        manualChunks: (id) => {
          if (id.includes('node_modules')) {
            return id.toString().split('node_modules/')[1].split('/')[0].toString()
          }
        }, 
        // 用于從入口點(diǎn)創(chuàng)建的塊的打包輸出格式[name]表示文件名,[hash]表示該文件內(nèi)容hash值
        entryFileNames: 'js/[name].[hash].js', 
        // 用于命名代碼拆分時(shí)創(chuàng)建的共享塊的輸出命名
        chunkFileNames: 'js/[name].[hash].js', 
        // 用于輸出靜態(tài)資源的命名,[ext]表示文件擴(kuò)展名
        assetFileNames: '[ext]/[name].[hash].[ext]' 
        // 拆分js到模塊文件夾 
        // chunkFileNames: (chunkInfo) => {
        //     const facadeModuleId = chunkInfo.facadeModuleId ? chunkInfo.facadeModuleId.split('/') : [];
        //     const fileName = facadeModuleId[facadeModuleId.length - 2] || '[name]';
        //     return `js/${fileName}/[name].[hash].js`;
        // },
      }
    }
  }

這樣就已經(jīng)完成了拆分css和js等文件

2.這邊還需要加一下vite的版本問(wèn)題,不然后續(xù)打包的app,在android或者iOS下載打開(kāi)可能是白屏的

一、問(wèn)題

在使用vue3.2和vite2.0+開(kāi)發(fā)一個(gè)移動(dòng)端H5,測(cè)試時(shí)發(fā)現(xiàn)很多低版本的安卓手機(jī)瀏覽器出現(xiàn)白屏的現(xiàn)象,而ios機(jī)型基本上是好的,原因是很多低版本瀏覽器并不支持原生ESM導(dǎo)入的方式,下面給出解決方案:

二、兼容原生ESM的瀏覽器

默認(rèn)情況下,Vite 的目標(biāo)瀏覽器是指能夠 支持原生 ESM script 標(biāo)簽 和 支持原生 ESM 動(dòng)態(tài)導(dǎo)入 的。作為參考,Vite 使用這個(gè) browserslist 作為查詢(xún)標(biāo)準(zhǔn):
 
Chrome >=87
Firefox >=78
Safari >=13
Edge >=88

三、解決方案 

步驟一:  vite.config.ts里 build.target 配置項(xiàng) 指定構(gòu)建目標(biāo)為 es2015 步驟二: 通過(guò)插件 @vitejs/plugin-legacy 來(lái)自動(dòng)生成傳統(tǒng)瀏覽器的 chunk 及與其相對(duì)應(yīng) ES 語(yǔ)言特性方面的 polyfill。兼容版的 chunk 只會(huì)在不支持原生 ESM 的瀏覽器中進(jìn)行按需加載。

1、安裝@vitejs/plugin-legacy

npm i @vitejs/plugin-legacy

2.配置 vite.config.ts

import legacy from "@vitejs/plugin-legacy";

export default defineConfig({
  plugins = [
   vue(),
  legacy({
    targets: [
      "> 1%, last 1 version, ie >= 11",
      "safari >= 10",
      "Android > 39",
      "Chrome >= 60",
      "Safari >= 10.1",
      "iOS >= 10.3",
      "Firefox >= 54",
      "Edge >= 15"
    ],
    additionalLegacyPolyfills: ["regenerator-runtime/runtime"],
    polyfills: ["es.promise.finally", "es/map", "es/set"],
    modernPolyfills: ["es.promise.finally"]
  })
];
  build: {
    target: 'es2015'
 }
});

3.Vite打包后的dist不能直接在瀏覽器打開(kāi)

原因

Vite 本身依賴(lài)于原生ES模塊來(lái)做模塊加載,而原生ES模塊是不支持 file:// 本地訪(fǎng)問(wèn)的。

解決辦法

方案一:使用http-server插件啟動(dòng)

1.安裝node.js;(已安裝跳過(guò))

2.安裝http-server。

npm install http-server -g

yarn global add http-server

3、進(jìn)入dist根目錄執(zhí)行啟動(dòng)項(xiàng)目

http-server

這樣就可以在dist文件里運(yùn)行了。

4.在HBuilderX發(fā)布app

1.打開(kāi)HBuilderX新建一個(gè)5+APP項(xiàng)目,并把vue中dist里面的所有文件復(fù)制過(guò)來(lái)(只保留manifest.json文件,其他換成dist文件)

 2.在manifest.json選擇對(duì)應(yīng)的信息,

3.點(diǎn)擊模板配置需關(guān)掉這2個(gè)選項(xiàng)

 4.然后點(diǎn)擊發(fā)行云打包,選擇以下幾個(gè)選項(xiàng) 

 5.打包成功發(fā)送這個(gè)文件到QQ,手機(jī)下載即可

總結(jié)

到此這篇關(guān)于使用vite發(fā)布app存在的所有問(wèn)題解決方法的文章就介紹到這了,更多相關(guān)vite發(fā)布app問(wèn)題內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue實(shí)現(xiàn)旋轉(zhuǎn)木馬動(dòng)畫(huà)

    vue實(shí)現(xiàn)旋轉(zhuǎn)木馬動(dòng)畫(huà)

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)旋轉(zhuǎn)木馬動(dòng)畫(huà),圖片數(shù)量無(wú)限制,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • vue動(dòng)態(tài)顯示圖片報(bào)錯(cuò)404的解決

    vue動(dòng)態(tài)顯示圖片報(bào)錯(cuò)404的解決

    這篇文章主要介紹了vue動(dòng)態(tài)顯示圖片報(bào)錯(cuò)404的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • Vue中?引入使用?babel-polyfill?兼容低版本瀏覽器的方法

    Vue中?引入使用?babel-polyfill?兼容低版本瀏覽器的方法

    最近在項(xiàng)目中使用 webpack 打包后升級(jí),用戶(hù)反饋使用瀏覽器(chrome 45)訪(fǎng)問(wèn)白屏。經(jīng)過(guò)排查發(fā)現(xiàn):由于 chrome 45 無(wú)法兼容 ES6 語(yǔ)法導(dǎo)致的,接下來(lái)給大家介紹下Vue中?引入使用?babel-polyfill?兼容低版本瀏覽器方法,需要的朋友可以參考下
    2023-02-02
  • 基于Vue3封裝實(shí)現(xiàn)圖片查看器

    基于Vue3封裝實(shí)現(xiàn)圖片查看器

    這篇文章主要為大家詳細(xì)介紹了如何基于Vue3封裝實(shí)現(xiàn)一個(gè)圖片查看器,可以點(diǎn)擊圖片放大和關(guān)閉放大的圖片,感興趣的小伙伴可以了解一下
    2025-02-02
  • 詳解Vue.js 可拖放文本框組件的使用

    詳解Vue.js 可拖放文本框組件的使用

    這篇文章主要介紹了詳解Vue.js 可拖放文本框組件的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)使用vue框架,感興趣的朋友可以了解下
    2021-03-03
  • 基于Vue.js實(shí)現(xiàn)簡(jiǎn)單搜索框

    基于Vue.js實(shí)現(xiàn)簡(jiǎn)單搜索框

    這篇文章主要為大家詳細(xì)介紹了基于Vue.js實(shí)現(xiàn)簡(jiǎn)單搜索框,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • vue項(xiàng)目ElementUI組件中el-upload組件與圖片裁剪功能組件結(jié)合使用詳解

    vue項(xiàng)目ElementUI組件中el-upload組件與圖片裁剪功能組件結(jié)合使用詳解

    這篇文章主要介紹了vue項(xiàng)目ElementUI組件中el-upload組件與圖片裁剪功能組件結(jié)合使用,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • vue實(shí)現(xiàn)輸入一位數(shù)字轉(zhuǎn)漢字功能

    vue實(shí)現(xiàn)輸入一位數(shù)字轉(zhuǎn)漢字功能

    這篇文章主要介紹了vue實(shí)現(xiàn)輸入一位數(shù)字轉(zhuǎn)漢字功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-12-12
  • 詳解Vue3.x中組件間參數(shù)傳遞的示例代碼

    詳解Vue3.x中組件間參數(shù)傳遞的示例代碼

    在?Vue3.x?中,組件間的參數(shù)傳遞是構(gòu)建復(fù)雜應(yīng)用時(shí)不可或缺的一部分,無(wú)論是父子組件還是兄弟組件之間,合理的數(shù)據(jù)流動(dòng)都是保持應(yīng)用狀態(tài)一致性和可維護(hù)性的關(guān)鍵,本文將通過(guò)示例代碼,詳細(xì)介紹?Vue3.x?中組件間如何傳遞參數(shù),需要的朋友可以參考下
    2024-03-03
  • vue跳轉(zhuǎn)方式(打開(kāi)新頁(yè)面)及傳參操作示例

    vue跳轉(zhuǎn)方式(打開(kāi)新頁(yè)面)及傳參操作示例

    這篇文章主要介紹了vue跳轉(zhuǎn)方式(打開(kāi)新頁(yè)面)及傳參操作,結(jié)合實(shí)例形式分析了vue.js跳轉(zhuǎn)實(shí)現(xiàn)方式與參數(shù)接受相關(guān)操作技巧,需要的朋友可以參考下
    2020-01-01

最新評(píng)論

宾川县| 长春市| 五大连池市| 彭水| 鞍山市| 广水市| 衡阳市| 印江| 清新县| 贵德县| 井冈山市| 延安市| 临夏县| 大方县| 上林县| 沁水县| 历史| 广宗县| 祥云县| 夏津县| 格尔木市| 鹤壁市| 天峨县| 东安县| 太仓市| 疏附县| 丹棱县| 麦盖提县| 连城县| 乌鲁木齐市| 驻马店市| 滕州市| 织金县| 枣强县| 太仓市| 大英县| 开封市| 黔江区| 红河县| 灌云县| 阆中市|