做爰高潮a片〈毛片〉,尤物av天堂一区二区在线观看,一本久久A久久精品VR综合,添女人荫蒂全部过程av

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

webpack多頁面開發實踐

來源:懂視網 責編:小采 時間:2020-11-27 22:23:30
文檔

webpack多頁面開發實踐

webpack多頁面開發實踐:寫在前面 webpack是一款模塊加載器兼打包工具,能把js,css,頁面,圖片,視頻等各種資源,進行模塊化處理。而現在網上流傳很多單頁面的webpack模型,那多頁面呢?比較少,現在我提供一個多頁面的前端模型。希望大家適合使用。 在最開始接觸webpack的時
推薦度:
導讀webpack多頁面開發實踐:寫在前面 webpack是一款模塊加載器兼打包工具,能把js,css,頁面,圖片,視頻等各種資源,進行模塊化處理。而現在網上流傳很多單頁面的webpack模型,那多頁面呢?比較少,現在我提供一個多頁面的前端模型。希望大家適合使用。 在最開始接觸webpack的時

寫在前面

webpack是一款模塊加載器兼打包工具,能把js,css,頁面,圖片,視頻等各種資源,進行模塊化處理。而現在網上流傳很多單頁面的webpack模型,那多頁面呢?比較少,現在我提供一個多頁面的前端模型。希望大家適合使用。

在最開始接觸webpack的時候,我都覺得webpack只適用于單頁面應用,比如webpack+react,webpack+vue。我自己在使用webpack+vue構建項目及開發的過程中感受到了webpack的強大和方便。基于實際項目需求,我在想,多頁面站點是否也能使用webapck來構建呢?于是就開始了一番探索,最終算是搭建了一套比較完整的解決方案。

本文以一個實際項目為例子,講述在多頁面項目中如何使用webpack進行工程化構建。本文是自己的實踐經驗總結,所以有些解決方案并不是最優的,仍在探索優化中,如果有什么錯誤紕漏,歡迎指出。

簡介

本項目主要基于webpack2.x構建,以gulp作為輔助工具。前端使用art-template作為模板引擎,一個頁面對應一個模板文件和一個入口文件,入口文件中可以通過import或require引入其他模塊,這些模塊webpack會自動跟入口文件合并為一個文件。

前端開發環境搭建

主要目錄結構

├─dist #打包后生成的文件目錄
└─src #開發目錄
 ├─components #通用組件
 ├─static #靜態資源目錄
 │ ├─css
 │ ├─img
 │ └─js
 │ ├─component #站點通用組件對應的js
 │ ├─lib #第三方js庫
 │ ├─services #各頁面入口
 │ └─util #通用工具js
 ├─template #html模板
 └─views #頁面
 main.js #公共入口
gulpfile.js #gulp任務配置
package.json #項目依賴
webpack.config.js #webpack配置

webpack配置

入口文件

// 獲取入口文件
var entries = (function() {
 var jsDir = path.resolve(__dirname, 'src/static/js/services');
 var entryFiles = glob.sync(jsDir + '/*.js');
 var map = {};

 entryFiles.forEach(function(filePath) {
 var filename = filePath.substring(filePath.lastIndexOf('\/') + 1, filePath.lastIndexOf('.'));
 map[filename] = filePath;
 });
 return map;
})();

該方法將生成文件名到文件絕對路徑的map, 比如

entry: {
 'page-1': '/../webpack-multipage-demo/src/static/js/services/page-1.js'
}

熱更新

熱更新簡直不要太好用,極大地提高了開發效率。

//服務器配置
var devServer = env === 'production' ? {} : {
 contentBase: path.resolve(__dirname),
 compress: true,
 historyApiFallback: true,
 hot: true,
 inline: true,
 host: 'localhost', 
 port: 8080
};

另外,在plugin中加入new webpack.HotModuleReplacementPlugin(),開啟Hot Module Replacemen,即可實現熱更新。

生成html配置

約定同一頁面的js文件與模板文件命名一致,最終根據該js生成與其同名的html文件。

var htmlPages = (function() {
 var artDir = path.resolve(__dirname, 'src/views');
 var artFiles = glob.sync(artDir + '/*.art');
 var array = [];
 artFiles.forEach(function(filePath) {
 var filename = filePath.substring(filePath.lastIndexOf('\/') + 1, filePath.lastIndexOf('.'));
 array.push(new HtmlWebpackPlugin({
 template: path.resolve(__dirname, 'src/template/index.html'),
 filename: filename + '.html',
 chunks: ['vendor', 'main', filename],
 chunksSortMode: function(chunk1, chunk2) {
 var order = ['vendor', 'main', filename];
 var order1 = order.indexOf(chunk1.names[0]);
 var order2 = order.indexOf(chunk2.names[0]);
 return order1 - order2;
 },
 minify: {
 removeComments: env === 'production' ? true : false,
 collapseWhitespace: env === 'production' ? true : false
 }
 }));
 });
 return array;
})();

通用模塊提取為組件

對于一些在多個頁面中都需要用到的模塊,可將其提取出來作為通用的組件。組件的構成與頁面一樣,一個.js文件和一個.art文件以及一個.css文件,在js文件中渲染html內容,最后export,使用時直接require即可。具體實踐可參考demo

存在問題

  1. 每新建一個頁面就需要重新啟動webpack服務
  2. 字體文件無法壓縮,對于壓縮通過font-face引入的網絡字體,目前沒有找到較好的解決方案

demo

基于本文理論的一個demo,地址:webpack-multipage-demo

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

webpack多頁面開發實踐

webpack多頁面開發實踐:寫在前面 webpack是一款模塊加載器兼打包工具,能把js,css,頁面,圖片,視頻等各種資源,進行模塊化處理。而現在網上流傳很多單頁面的webpack模型,那多頁面呢?比較少,現在我提供一個多頁面的前端模型。希望大家適合使用。 在最開始接觸webpack的時
推薦度:
標簽: 開發 實戰 實踐
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 手游| 泊头市| 隆安县| 凤阳县| 普兰店市| 武定县| 岚皋县| 福安市| 合作市| 宣威市| 娄底市| 高陵县| 廉江市| 辛集市| 台北县| 肥西县| 将乐县| 赣州市| 平舆县| 成武县| 日土县| 武乡县| 徐州市| 津南区| 丘北县| 松溪县| 湘乡市| 富锦市| 格尔木市| 义马市| 郧西县| 马鞍山市| 自治县| 雅江县| 南木林县| 时尚| 靖江市| 武穴市| 泸西县| 凉城县| 揭阳市|