摘要:但是解決過(guò)程并不是很順利的,在閱讀中文文檔時(shí),忽略版本號(hào),按照上面的提示進(jìn)行操作,發(fā)現(xiàn)不能成功,后來(lái)各種,最后發(fā)現(xiàn)了該解決方案。發(fā)生在這個(gè)問(wèn)題的原因時(shí),服務(wù)端并沒(méi)有或?qū)ο蟆?/p>
構(gòu)建問(wèn)題 1. 如何在 head 里面引入js文件?
背景: 在標(biāo)簽中,以inline的形式引入flexible.js文件。本項(xiàng)目主要為移動(dòng)端項(xiàng)目,引入flexible.js 實(shí)現(xiàn)移動(dòng)端適配問(wèn)題。
Nuxt.js 通過(guò) vue-meta 實(shí)現(xiàn)頭部標(biāo)簽管理,通過(guò)查看文檔發(fā)現(xiàn),可以按照如下方式配置:
// nuxt.config.js head: { script: [ { innerHTML: "console.log("hello")", type: "text/javascript", charset: "utf-8"} ] }
結(jié)果,生成 html:
我們發(fā)現(xiàn) vue-meta 把引號(hào)做了轉(zhuǎn)義處理,加入 __dangerouslyDisableSanitizers: ["script"] 后,就不會(huì)再對(duì)這些字符做轉(zhuǎn)義了,該字段使用需慎重!
接下來(lái),要把 console.log("hello") 的內(nèi)容替換成 flexible.js,配置升級(jí)之后:
head: { script: [{ innerHTML: require("./assets/js/flexible"), type: "text/javascript", charset: "utf-8"}], __dangerouslyDisableSanitizers: ["script"] }
踩坑成功,下一個(gè)坑...
2. 如何使用預(yù)處理器背景:在組件中的, 或 上使用各種預(yù)處理器,加上處理器后,控制臺(tái)報(bào)錯(cuò)。
這個(gè)問(wèn)題解決方法非常簡(jiǎn)單,只需要安裝這些依賴就好。
npm install --save-dev node-sass sass-loader
但是解決過(guò)程并不是很順利的,在閱讀中文文檔時(shí),忽略版本號(hào),按照上面的提示進(jìn)行操作,發(fā)現(xiàn)不能成功,后來(lái)各種debug,最后發(fā)現(xiàn)了該解決方案。后知后覺(jué)的發(fā)現(xiàn)了中文文檔的版本號(hào)過(guò)低,如果需要查看文檔,一定要看最新版本的英文文檔!
3. 如何使用px2rem背景:在css中,寫入px,通過(guò)px2rem loader,將px轉(zhuǎn)換成rem
在以前的項(xiàng)目中,是通過(guò) px2rem loader實(shí)現(xiàn)的,但是在Nuxt.js項(xiàng)目下,添加 css loader 還是很費(fèi)力的,因?yàn)樯婕暗?b>vue-loader。
想到了一個(gè)其他方案,可以使用 postcss 處理??梢栽?nuxt.config.js 文件中添加配置,也可以在postcss.conf.js文件中添加。
build: { postcss: [ require("postcss-px2rem")({ remUnit: 75 // 轉(zhuǎn)換基本單位 }) ] },4. 如何拓展 webpack 配置
背景:給 utils 目錄添加別名
剛剛說(shuō)到,Nuxt.js內(nèi)置了 webpack 配置,如果想要拓展配置,可以在 nuxt.config.js 文件中添加。同時(shí)也可以在該文件中,將配置信息打印出來(lái)。
extend (config, ctx) { console.log("webpack config:", config) if (ctx.isClient) { // 添加 alias 配置 Object.assign(config.resolve.alias, { "utils": path.resolve(__dirname, "utils") }) } }5. 如何添加 vue plugin
背景:自己封裝了一個(gè) toast vue plugin,由于 vue 實(shí)例化的過(guò)程沒(méi)有暴露出來(lái),不知道在哪個(gè)時(shí)機(jī)注入進(jìn)去。
可以在 nuxt.config.js 中添加 plugins 配置,這樣插件就會(huì)在 Nuxt.js 應(yīng)用初始化之前被加載導(dǎo)入。
module.exports = { plugins: ["~plugins/toast"] }
~plugins/toast.js 文件:
import Vue from "vue" import toast from "../utils/toast" import "../assets/css/toast.css" Vue.use(toast)6.如何修改環(huán)境變量 NODE_ENV
背景:在項(xiàng)目中,設(shè)置 3個(gè) NODE_ENV 的值,來(lái)對(duì)應(yīng)不同的版本。development,本地開(kāi)發(fā);release,預(yù)發(fā)布版本;production,線上版本。其中,預(yù)發(fā)布版本比production版本,多出vconsole。
// package.json "scripts": { "buildDev": "cross-env NODE_ENV=release nuxt build && backpack build", "startDev": "cross-env NODE_ENV=release PORT=3000 node build/main.js" },
打印 process.env.NODE_ENV 依舊是,production。
在 backpack 的源碼中,找到了答案,在 執(zhí)行 backpack build 命令時(shí),會(huì)把 process.env.NODE_ENV 修改為 production,并且是寫死的不可配置的......
無(wú)奈下,只能在 process.env 下,添加 __ENV 屬性,代表 NODE_ENV
這時(shí),在頁(yè)面中打印出來(lái)的信息 process.env.__ENV undefined,但是可以打印出 process.env.NODE_ENV。
可以通過(guò)配置 nuxt.config.js 中的,env屬性,解決該問(wèn)題。
env: { __ENV: process.env.__ENV }開(kāi)發(fā)問(wèn)題 1. Window 或 Document 對(duì)象未定義?
背景: 在引入第三方插件,或者直接在代碼中寫 window 時(shí),控制臺(tái)會(huì)給出警告,window 未定義。
發(fā)生在這個(gè)問(wèn)題的原因時(shí),node服務(wù)端并沒(méi)有window 或 document 對(duì)象。解決方法,通過(guò) process.browser 來(lái)區(qū)分環(huán)境。
if (process.browser) { // 引入第三方插件 require("***") // 或者修改window對(duì)象下某一屬性 window.mbk = {} }最后
本文主要在項(xiàng)目中遇到的各種問(wèn)題,文中有任何表述不清或不當(dāng)?shù)牡胤剑瑲g迎大家批評(píng)指正。給大家推薦我們的公眾號(hào) 前端新視野 ,一個(gè)很認(rèn)真的日刊公眾號(hào),歡迎掃描下方二維碼關(guān)注!
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/110102.html
摘要:本文會(huì)不定期更新在中遇到的問(wèn)題進(jìn)行匯總。轉(zhuǎn)發(fā)請(qǐng)注明出處,尊重作者,謝謝注意版本為,適合低版本指南,不通用以上。強(qiáng)烈推薦作者文檔版踩坑指南,點(diǎn)擊跳轉(zhuǎn) 本文會(huì)不定期更新在nuxt.js中遇到的問(wèn)題進(jìn)行匯總。轉(zhuǎn)發(fā)請(qǐng)注明出處,尊重作者,謝謝! 注意:版本為1.0+,適合低版本nuxt指南,不通用2.0+以上。 強(qiáng)烈推薦作者文檔版踩坑指南,點(diǎn)擊跳轉(zhuǎn)
摘要:本文會(huì)不定期更新在中遇到的問(wèn)題進(jìn)行匯總。轉(zhuǎn)發(fā)請(qǐng)注明出處,尊重作者,謝謝注意版本為,適合低版本指南,不通用以上。強(qiáng)烈推薦作者文檔版踩坑指南,點(diǎn)擊跳轉(zhuǎn) 本文會(huì)不定期更新在nuxt.js中遇到的問(wèn)題進(jìn)行匯總。轉(zhuǎn)發(fā)請(qǐng)注明出處,尊重作者,謝謝! 注意:版本為1.0+,適合低版本nuxt指南,不通用2.0+以上。 強(qiáng)烈推薦作者文檔版踩坑指南,點(diǎn)擊跳轉(zhuǎn)
摘要:在應(yīng)用中,如果想要修改的頭部標(biāo)簽,或許,你會(huì)在代碼里,直接這么做改下引入一段修改信息,或者給標(biāo)簽添加屬性此處省略一大坨代碼今天給大家介紹一種更優(yōu)雅的方式,去管理頭部標(biāo)簽介紹借用上的介紹,基于的插件,主要用于管理頭部標(biāo)簽,同時(shí)也支持。 在 Vue SPA 應(yīng)用中,如果想要修改HTML的頭部標(biāo)簽,或許,你會(huì)在代碼里,直接這么做: // 改下title document.title = wh...
摘要:發(fā)布發(fā)布節(jié)奏變化從月份的開(kāi)始,將每周發(fā)布一個(gè)新的穩(wěn)定版本。將于年月日開(kāi)始測(cè)試,穩(wěn)定版將于年月日發(fā)布。一個(gè)使用和實(shí)現(xiàn)了個(gè)用戶界面的頁(yè)面。實(shí)踐總結(jié)是一個(gè)現(xiàn)代的企業(yè)級(jí)框架,提供了強(qiáng)大的和許多開(kāi)箱即用的功能。 .markdown-body{word-break:break-word;line-height:1.75;font-weight:400;font-size:15px;overflow-x...
閱讀 3993·2021-11-23 10:09
閱讀 1352·2021-11-23 09:51
閱讀 2953·2021-11-23 09:51
閱讀 1600·2021-09-07 09:59
閱讀 2362·2019-08-30 15:55
閱讀 2309·2019-08-30 15:55
閱讀 2960·2019-08-30 15:52
閱讀 2570·2019-08-26 17:04