摘要:如果不配置,則將所有的文件都注入。指明生成的路徑,如果不配置就是。配置了新的,避免與第一個(gè)入口相互覆蓋。甚至輸入顯然不存在的,也顯示為的內(nèi)容。這種現(xiàn)象,初步判斷是服務(wù)器把所有請(qǐng)求重定向到了。至此,環(huán)境的多入口問題就解決了。前端根據(jù)自行配置。
背景
還是之前的那個(gè)項(xiàng)目,做完國際化沒多久,還沒來得及劃水, 又有新的活了 -- 移動(dòng)端的兼容。 考慮到后期的復(fù)雜度, 需要做兩套資源。 具體的目標(biāo)是:同一個(gè)URL,PC打開就顯示PC的那一套, M端打開就顯示Mobile的頁面。 create-react-app 腳手架本身不支持多入口, 需要改造,今天下午研究了一下,改造了一波, 基本達(dá)到了預(yù)期, 在這里簡單把經(jīng)驗(yàn)總結(jié)分享下。
先睹為快Mobile:
PC:
輸出之后的文件, 相比之前的index.html, 多了一個(gè)額外的mobile.html.
最終的源代碼目錄:
具體的改造步驟如下:
Steps step1: Eject在下之前圖方便, 直接用了create-react-app, 現(xiàn)在需要更改配置, 需要彈出默認(rèn)配置:
在終端執(zhí)行:yarn eject.
step2: 修改webpack config原本的 webpack.config.dev.js:
entry: [ require.resolve("react-dev-utils/webpackHotDevClient"), require.resolve("./polyfills"), require.resolve("react-error-overlay"), paths.appIndexJs, ], output: { path: paths.appBuild, pathinfo: true, filename: "static/js/bundle.js", chunkFilename: "static/js/[name].chunk.js", publicPath: publicPath, devtoolModuleFilenameTemplate: info => path.resolve(info.absoluteResourcePath), },
需要修改為:
entry: { index: [ require.resolve("./polyfills"), require.resolve("react-dev-utils/webpackHotDevClient"), paths.appIndexJs, ], mobile: [ require.resolve("./polyfills"), require.resolve("react-dev-utils/webpackHotDevClient"), paths.appSrc + "/mobile/index.js", ] }, output: { pathinfo: true, filename: "static/js/[name].bundle.js", chunkFilename: "static/js/[name].chunk.js", publicPath: publicPath, devtoolModuleFilenameTemplate: info => path.resolve(info.absoluteResourcePath).replace(//g, "/"), },
可能需要注意的幾點(diǎn):
entry從原來的數(shù)組擴(kuò)展為對(duì)象,每個(gè)key代表一個(gè)入口。
output中的filename要區(qū)分輸出名,可增加[name]變量,這樣會(huì)根據(jù)entry分別編譯出每個(gè)entry的js文件。
這樣你就可以在src 目錄下新起一個(gè)民目錄開發(fā)新的SPA:
step3: 生成多個(gè)html入口文件Webpack配置多入口后,只是編譯出多個(gè)入口的Js,入口的HTML文件也需要配置, 可以用HtmlWebpackPlugin來生成。
webpack.config.dev.js 原配置:
// Generates an `index.html` file with the 路由相關(guān)到這, 已經(jīng)可以手動(dòng)修改URL 來訪問pc 和 mobile的頁面了。 還有一個(gè)問題沒有解決:
URL最后肯定是不能給你手動(dòng)改來改去的, 需要根據(jù)設(shè)備的情況自己判斷, 這里有兩個(gè)思路:
1: 配置 Nginx 的路徑的時(shí)候, 加多一個(gè)alias 的映射。
2: 前端根據(jù)UA自行配置。為了快速出效果, 簡單搞了一下, 具體代碼如下:
這樣, 不用手動(dòng)修改URL 也能根據(jù)UA自動(dòng)顯示不同的頁面了, 具體的效果圖在文章開頭的先睹為快中。
其他上面的路由就為了簡單的出個(gè)效果, 比較粗暴, 僅供參考。
結(jié)語以上就是全部的細(xì)節(jié)了, 達(dá)到了預(yù)期的效果, 但是也有很大優(yōu)化空間。 等后面一波需求做完了, 再來做補(bǔ)充吧。:P
End。
參考資料:
https://medium.com/a-beginner...
http://imshuai.com/create-rea...
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/98335.html
摘要:如果不配置,則將所有的文件都注入。指明生成的路徑,如果不配置就是。配置了新的,避免與第一個(gè)入口相互覆蓋。甚至輸入顯然不存在的,也顯示為的內(nèi)容。這種現(xiàn)象,初步判斷是服務(wù)器把所有請(qǐng)求重定向到了。至此,環(huán)境的多入口問題就解決了。前端根據(jù)自行配置。 背景 還是之前的那個(gè)項(xiàng)目,做完國際化沒多久,還沒來得及劃水, 又有新的活了 -- 移動(dòng)端的兼容。 考慮到后期的復(fù)雜度, 需要做兩套資源。 具體的目...
摘要:前端每周清單第期現(xiàn)狀分析與優(yōu)化策略單元測試爬蟲作者王下邀月熊編輯徐川前端每周清單專注前端領(lǐng)域內(nèi)容,以對(duì)外文資料的搜集為主,幫助開發(fā)者了解一周前端熱點(diǎn)分為新聞熱點(diǎn)開發(fā)教程工程實(shí)踐深度閱讀開源項(xiàng)目巔峰人生等欄目。 showImg(https://segmentfault.com/img/remote/1460000011008022); 前端每周清單第 29 期:Web 現(xiàn)狀分析與優(yōu)化策略...
摘要:在線注冊(cè)賬號(hào),數(shù)據(jù)存儲(chǔ)于。年了,還不使用的異步控制體系。過度對(duì)數(shù)據(jù)模型進(jìn)行裝飾的結(jié)果便是高耦合,這跟我初衷是基于在線存儲(chǔ)數(shù)據(jù)有關(guān)。 為什么又是Todo,全世界的初學(xué)者都在做todo嗎?可能很多人要問這句話,其實(shí)這句話可以等同于: 為什么你做了個(gè)云音樂播放器? 為什么你做了個(gè)新聞閱讀APP? 為什么你做了個(gè)VUE/REACT版本的CNODE? 究其本質(zhì),這幾個(gè)應(yīng)用都是data-map...
一、前言大型中后臺(tái)項(xiàng)目一般包括10個(gè)以上的子項(xiàng)目,如果維護(hù)在一個(gè)單頁面應(yīng)用中,項(xiàng)目就會(huì)越來越大,而且不利于版本的迭代,微前端就很好的解決了這些問題。這篇文章主要來體驗(yàn)下螞蟻的微前端:qiankun,雖然比較成熟了,但在體驗(yàn)過程中還是有一些問題,記錄總結(jié)下,項(xiàng)目代碼實(shí)踐項(xiàng)目以react單頁面應(yīng)用為主應(yīng)用,然后構(gòu)建了三個(gè)微應(yīng)用:react、vue3、node靜態(tài)頁面二、前期準(zhǔn)備微前端要求多個(gè)前端服務(wù),...
摘要:特意對(duì)前端學(xué)習(xí)資源做一個(gè)匯總,方便自己學(xué)習(xí)查閱參考,和好友們共同進(jìn)步。 特意對(duì)前端學(xué)習(xí)資源做一個(gè)匯總,方便自己學(xué)習(xí)查閱參考,和好友們共同進(jìn)步。 本以為自己收藏的站點(diǎn)多,可以很快搞定,沒想到一入?yún)R總深似海。還有很多不足&遺漏的地方,歡迎補(bǔ)充。有錯(cuò)誤的地方,還請(qǐng)斧正... 托管: welcome to git,歡迎交流,感謝star 有好友反應(yīng)和斧正,會(huì)及時(shí)更新,平時(shí)業(yè)務(wù)工作時(shí)也會(huì)不定期更...
閱讀 2964·2021-11-22 15:25
閱讀 2246·2021-11-18 10:07
閱讀 1054·2019-08-29 15:29
閱讀 481·2019-08-29 13:25
閱讀 1512·2019-08-29 12:58
閱讀 3208·2019-08-29 12:55
閱讀 2919·2019-08-29 12:28
閱讀 511·2019-08-29 12:16