国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

vue-cli + vue3 項(xiàng)目 ios 蘋(píng)果手機(jī)白屏問(wèn)題

這篇具有很好參考價(jià)值的文章主要介紹了vue-cli + vue3 項(xiàng)目 ios 蘋(píng)果手機(jī)白屏問(wèn)題。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

問(wèn)題描述

vue-cli + vue3 的項(xiàng)目,在蘋(píng)果手機(jī)上打開(kāi)白屏,安卓手機(jī)正常顯示。

原因分析

1,借助 vconsole 發(fā)現(xiàn)并沒(méi)有打印報(bào)錯(cuò)信息,并且沒(méi)有請(qǐng)求發(fā)出。初步判斷可能是 js 新語(yǔ)法的問(wèn)題(因?yàn)榘沧渴謾C(jī)沒(méi)有問(wèn)題)。

<script src="https://unpkg.com/vconsole@latest/dist/vconsole.min.js"></script>
<script>
  // VConsole 默認(rèn)會(huì)掛載到 `window.VConsole` 上
  var vConsole = new window.VConsole();
  // 接下來(lái)即可照常使用 `console` 等方法
  console.log('Hello world');
     
  // 可可移除掉
  // vConsole.destroy();
</script>

2,原本最優(yōu)的方案是,通過(guò) mac 鏈接蘋(píng)果手機(jī),可以直接在 mac 上看到蘋(píng)果手機(jī)的控制臺(tái),就能定位問(wèn)題了,可是因?yàn)槟承┰驘o(wú)法使用 mac。

3,那就只能靠猜,用控制變量的方式:先只保留框架再一步步的加項(xiàng)目代碼,看看哪些代碼會(huì)有影響。

經(jīng)過(guò)初步實(shí)現(xiàn),發(fā)現(xiàn)了3種蘋(píng)果手機(jī)無(wú)法識(shí)別的問(wèn)題

  • 可選鏈操作符 ?.
obj.val?.prop
  • 空值合并運(yùn)算符 ??
leftExpr ?? rightExpr
  • 展開(kāi)語(yǔ)法 和 剩余參數(shù) ...

這3個(gè) js 新語(yǔ)法問(wèn)題,可以配置對(duì)應(yīng)的 babel 插件來(lái)解決

// babel.config.js
module.exports = {
  presets: ['@vue/cli-plugin-babel/preset'],
  plugins: [
    '@babel/plugin-proposal-optional-chaining',
    '@babel/plugin-proposal-nullish-coalescing-operator',
    '@babel/plugin-proposal-object-rest-spread'
  ]
}
  • 部分 import/export 語(yǔ)法不支持
// components/index.js
import Header from './Header.vue'
export { Header }
// 某文件中
// 無(wú)法識(shí)別
import { Header } from '@/components'
// 可識(shí)別
import Header from '@/components/Header.vue'

解決方案

這樣看來(lái),babel 應(yīng)該會(huì)有統(tǒng)一處理 js 新語(yǔ)法的插件。babel 最終的配置如下

module.exports = {
  presets: ['@vue/cli-plugin-babel/preset', '@babel/preset-env'],
  plugins: ['@babel/plugin-transform-runtime']
}

但問(wèn)題還沒(méi)有解決!

babel 做降級(jí)處理的依據(jù)是通過(guò) browserslist 查詢出需要支持的瀏覽器列表。

所以還需要在 .browserslistrc 或是 package.json 中的 browserslist 字段中增加對(duì)蘋(píng)果手機(jī)的配置:

"browserslist": [
  "> 1%",
  "last 2 versions",
  "not dead",
  "not ie 11",
  "ios >= 9"
],

加上這個(gè)配置后,會(huì)發(fā)現(xiàn)最終打包的文件變大了幾百kb。

另外,browserslist 配置文件,在腳手架創(chuàng)建項(xiàng)目時(shí)會(huì)自動(dòng)生成,可以選擇作為單獨(dú)的配置文件,或放到 package.json 中。

以上即可解決。

遇到的坑

1,架構(gòu)問(wèn)題

因?yàn)檫@個(gè)項(xiàng)目使用的 pnpm 的 monorepo 架構(gòu),關(guān)鍵目錄如下

-- dist
-- node_modules
-- packages
    -- pc
       -- 正常 vue 項(xiàng)目目錄
    -- mobile
       -- 正常 vue 項(xiàng)目目錄
-- package.json
-- pnpm-workspace.yaml

一般來(lái)說(shuō),如果子項(xiàng)目中都用到的依賴,比如 pc 和 mobile 項(xiàng)目都使用了 mockjs,可以放到項(xiàng)目根目錄下的 package.json 中,來(lái)避免冗余。

但關(guān)于 babel 的配置依賴,這樣是無(wú)效的!

所以,解決方案中 babel 使用的3個(gè)依賴,必須放到對(duì)應(yīng)子項(xiàng)目的 package.json 中!

@babel/plugin-transform-runtime
@babel/preset-env
@vue/cli-plugin-babel

2,項(xiàng)目引入其他依賴的問(wèn)題

這個(gè)問(wèn)題我沒(méi)有遇到,但發(fā)現(xiàn)有其他人遇到,這里也記錄下。

問(wèn)題:如果引入的依賴中也有 js 的高級(jí)語(yǔ)法,那也需要做降級(jí)處理。

默認(rèn)情況下 babel-loader 會(huì)忽略所有 node_modules 中的文件。如果你想要通過(guò) Babel 顯式轉(zhuǎn)譯一個(gè)依賴,可以在這個(gè)選項(xiàng)中列出來(lái)。

解決如下:

// vue.config.js
const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
  transpileDependencies: ['swiper'], // 或直接設(shè)置為 true 表示所有。
  // ... 其他配置
})

以上。


參考

ios 白屏問(wèn)題

browserslist 的作用文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-790401.html

到了這里,關(guān)于vue-cli + vue3 項(xiàng)目 ios 蘋(píng)果手機(jī)白屏問(wèn)題的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 使用vue-cli創(chuàng)建第一個(gè)vue項(xiàng)目

    使用vue-cli創(chuàng)建第一個(gè)vue項(xiàng)目

    命令提示符切換至需要?jiǎng)?chuàng)建項(xiàng)目的目錄: 直接在路徑 輸入cmd 在按鍵盤(pán)的 enter鍵 打開(kāi)的終端就直接切換到該目錄下 (1)輸入以下命令: vue create 項(xiàng)目名稱 (2)我這里選手動(dòng)選擇,鍵盤(pán) 上下 按鈕,選完后按 enter鍵 (3)我這里選Babel和CSS,鍵盤(pán) 上下 按鈕,選中或取消選中按

    2023年04月17日
    瀏覽(97)
  • vue2、vue-cli4以及vue3、vite打包去掉console.log

    webpack4會(huì)自帶terser-webpack-plugin插件。 vue.config.js文件 vue-cli chainwebpack配置 webpack 配置terser chain鏈?zhǔn)脚渲?vite.config.ts文件 Esbuild#drop:For example, you can mark console.log as pure using --pure:console.log. This will cause these API calls to be removed safely when minification is enabled. Vite esbuild配置 esbuild prue配置

    2024年02月10日
    瀏覽(230)
  • 使用vue-cli創(chuàng)建vue2項(xiàng)目以及項(xiàng)目配置

    使用vue-cli創(chuàng)建vue2項(xiàng)目以及項(xiàng)目配置

    1、安裝vue-cli cmd:npm install -g @vue/cli@4.5.19 驗(yàn)證是否安裝成功:vue -v? ?出現(xiàn)版本號(hào)說(shuō)明安裝成功 2、創(chuàng)建項(xiàng)目 vue create 項(xiàng)目名稱 根據(jù)自己的需求選擇特性,如下所示: 手動(dòng)選擇: 選擇自己需要的特性:例如: 選擇vue版本 選擇路由模式 (輸入y和n都可以,y代表history模式?jīng)]有

    2024年02月06日
    瀏覽(94)
  • 【vue項(xiàng)目】vue項(xiàng)目創(chuàng)建全流程,創(chuàng)建使用 vue-cli 搭建項(xiàng)目

    一. 使用 vue-cli 搭建項(xiàng)目 1.安裝vue/cli ,執(zhí)行下面的命令安裝或是升級(jí) npm i -g @vue/cli 安裝報(bào)錯(cuò) ? 如果安裝報(bào)錯(cuò)如下 npm i -g @vue/cli 安裝報(bào)錯(cuò)解決方案 ? 查看vue版本 vue -V ,主要原因是安裝vue的版本過(guò)低。 ? 輸入以下命令 ,可以強(qiáng)制覆蓋以前舊版本的vue-cli腳手架。 ? 執(zhí)行完,

    2023年04月17日
    瀏覽(90)
  • 使用vue-cli腳手架創(chuàng)建vue項(xiàng)目

    0.vue cli安裝 vue cli2安裝 vue cli2卸載 vue cli3安裝 key通過(guò)命令查看當(dāng)前安裝的vue cli的版本 1. vue init vue init 是vue-cli2.x的初始化方式,可以使用github上面的一些模板來(lái)初始化項(xiàng)目 webpack是官方推薦的標(biāo)準(zhǔn)模板名。 vue-cli2.x項(xiàng)目向3.x遷移只需要把static目錄復(fù)制到public目錄下,老項(xiàng)目的

    2024年02月11日
    瀏覽(22)
  • vue-cli3的安裝和項(xiàng)目創(chuàng)建

    vue-cli3的安裝和項(xiàng)目創(chuàng)建

    一 vue-cli3的安裝 (注意:vue-cli3在安裝之前,需要先刪除舊版本,即vue-cli2) ? cnpm i -g @vue/cli vue-cli3的卸載:cnpm uninstall -g @vue/cli? 然后用命令“vue -V”查看是否刪除vue,如果沒(méi)有刪掉,就直接去文件夾里面刪除vue文件夾即可 (二)vue-cli3項(xiàng)目創(chuàng)建 1,用dos命令的方式 vue cre

    2024年02月09日
    瀏覽(23)
  • vue-cli 項(xiàng)目集成 Jest 單元測(cè)試

    vue-cli 項(xiàng)目集成 Jest 單元測(cè)試

    前端單元測(cè)試對(duì)于保證代碼質(zhì)量和穩(wěn)定性是非常重要的。 為什么需要單元測(cè)試: 檢測(cè)bug; 提升回歸效率; 保證代碼質(zhì)量。? ①、Mocha 比較靈活成熟,但沒(méi)有內(nèi)部集成,需要自主選擇斷言庫(kù)和監(jiān)聽(tīng)?zhēng)??!?②、Jasmine 是 Jest 的底層庫(kù),助攻 BDD(即行為驅(qū)動(dòng)開(kāi)發(fā))斷言庫(kù)與異步測(cè)

    2024年01月17日
    瀏覽(21)
  • vue-cli3.0創(chuàng)建項(xiàng)目IE兼容處理

    一、白屏處理 IE白屏,基本是JS代碼報(bào)錯(cuò),包括app.js報(bào)錯(cuò)或者chunk包報(bào)錯(cuò),需要分以下幾個(gè)步驟解決: 1. 安裝sockjs-client包,npm i?sockjs-client -D。 2. 安裝babel-polyfill包,npm i?babel-polyfill -D,并在main.js中引入(在第一行代碼引入),import \\\'babel-polyfill\\\'; 3. 在vue.config.js中增加配置:

    2024年02月07日
    瀏覽(20)
  • uniapp的h5項(xiàng)目 用命令起這個(gè)項(xiàng)目(vue-cli)

    uniapp的h5項(xiàng)目 用命令起這個(gè)項(xiàng)目(vue-cli)

    這里其實(shí)就相當(dāng)于給uniapp h5套了一個(gè)vue-cli的殼(純屬個(gè)人感覺(jué)) 首先需要安裝vue-cli 腳手架 然后創(chuàng)建項(xiàng)目(這里需要在hbuilder創(chuàng)建) 安裝成功后它的結(jié)構(gòu)是目錄, 打開(kāi)項(xiàng)目查看package.json文件,所有對(duì)應(yīng)的命令都已經(jīng)有了 用命令運(yùn)行一下 然后在把你的uniapp h5項(xiàng)目全部拷貝到

    2024年04月11日
    瀏覽(17)
  • 關(guān)于基于vue-cli腳手架創(chuàng)建vue項(xiàng)目(圖文版)

    關(guān)于基于vue-cli腳手架創(chuàng)建vue項(xiàng)目(圖文版)

    目錄 一.vue-cli腳手架·概述(來(lái)源于官方文檔) 二.創(chuàng)建流程 2.1 首先安裝node.js,如未安裝請(qǐng)移步到:安裝node.js 2.2 安裝腳手架vue-cli 2.2.1 使用npm install -g @vue/cli命令 ?2.2.1 使用vue -V 查看版本并檢驗(yàn)是否安裝成功 ?2.3 安裝vue項(xiàng)目 2.3.1 使用命令 vue create 項(xiàng)目名 ?編輯?2.3.2 這里

    2024年02月07日
    瀏覽(301)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包