使用vite把vue3打包成非esmodule的方式,去讓file協(xié)議能正常加載

自vite和vue3發(fā)布后,我就用他們作為主要的vue開發(fā)模式,但是今天需要把以前寫的vue3的內(nèi)容嵌套到一個自己編譯的安卓webview中,但是去這個webview中集成esmodule是一件很麻煩的事情,所以我需要使用vite把vue3打包成非esmodule的方式,去讓file協(xié)議能正常加載。

step1: 安裝 @vitejs/plugin-legacy

[@vitejs/plugin-legacy地址] @vitejs/plugin-legacy - npm (npmjs.com)

// npm安裝
npm i @vitejs/plugin-legacy

step2: 配置@vitejs/plugin-legacy相關內(nèi)容

在根目錄找到vite.config.ts(js),并做如下修改

import legacy from '@vitejs/plugin-legacy';
plugins:[
  legacy({
    targets:['defaults','not IE 11']
    }),
   vue()],

step3: 進行打包

一般正常的項目直接build

step4: 修改打包后的文件

  • 移除 <script type=module> 元素

  • 移除其他 <script> 的 nomodule 屬性

  • 移除 <script id=vite-legacy-entry> 元素的內(nèi)容,并把 data-src 屬性名改為 src

得到這樣一個標簽
<script id="vite-legacy-entry" src="./assets/index-legacy.1b49367f.js"></script>
  • 移除 SystemJS loader 代碼(那個壓縮到一行的 <script>)
一般都會攜帶async和 crossOrigin字樣的那個標簽,一般是第一個script引入,這行需要注釋

step4: 進行測試

直接雙擊index.html,可以看到使用file協(xié)議正常運行了打包后的文件,并且沒有跨域報錯

img

作者:啥名都不好起

鏈接:http://www.itdecent.cn/p/d44d14bc5344

來源:簡書

著作權歸作者所有。商業(yè)轉載請聯(lián)系作者獲得授權,非商業(yè)轉載請注明出處。

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容