《nodejs+gulp+webpack基礎實戰篇》課程筆記(六)--附加課

來源:互聯網
上載者:User

標籤:

一、多頁面分離資源引用,按需引用JS和css

  我們前面實現了以下功能:1、建立了一個login模版(用到htmlWebpackPlugin)。2、分別把main.js和login.js、reg.js分開寫。3、學習了css載入器。我們通過webpack可以打包js檔案、自動注入js和CSS引用。

  那麼我們要載入多頁面如何操作呢?現在我們就在/src/tpl 檔案夾下新件一個index.html檔案,在CSS加入index.css,隨便寫兩個樣式,然後在/src/下建立一個index.js,隨便寫兩個JS代碼,來測試下這個如何操作。

var HtmlWebpackPlugin = require(‘html-webpack-plugin‘);//萬事先引用var webpack = require("webpack");var ExtractTextPlugin = require("extract-text-webpack-plugin"); //初始化module.exports={    /*entry: [    //entry 是入口檔案,可以多個,代表要編譯那些js        ‘./src/main.js‘,        ‘./src/login.js‘,        ‘./src/reg.js‘,    ],*/    entry:{ //多節點設定        "main":‘./src/main.js‘,        "user":[‘./src/login.js‘,‘./src/reg.js‘],        "index":[‘./src/index.js‘]    },    output:{        path: __dirname+‘/build/js‘,      //輸出檔案夾        filename: ‘[name].js‘    //最終打包產生的檔案名稱    },    externals: {    ‘jquery‘: ‘jQuery‘   //或者 ‘jquery’:’$’    },    //載入css    module:{        loaders:[   //設定載入器            //{test:/\.css$/},loader:"style!css"}            {test:/\.css$/,loader:ExtractTextPlugin.extract("style","css")} // test屬性是一個正則,loader屬性知名載入器,!是串連符        ]    },plugins:[        new HtmlWebpackPlugin({            filename: __dirname + ‘/build/html/login.html‘,            template: __dirname + ‘/src/tpl/login.html‘,            inject:"body",            //hash:true            chunks:["main","user"]        }), //初始化這個對象    new HtmlWebpackPlugin({        filename: __dirname + ‘/build/html/index.html‘,        template: __dirname + ‘/src/tpl/index.html‘,        inject:"body",        //hash:true        chunks:["main","index"]    }), //初始化index.html        new webpack.ProvidePlugin({            $:‘jquery‘  //這裡請確保你的jquery已經安裝了。否則要路徑引用哦        }),        /*new webpack.optimize.CommonsChunkPlugin({            name:"user",            //entry定義的節點名            filename:"user.js"       //最終要產生到檔案名稱        }),*/        new ExtractTextPlugin("[name].css") //根據我們自己的檔案名稱來產生]}

  然後產生看看,下面我們還將對檔案進行最佳化,消除一些冗餘。

二、用webpack的CommonsChunkPlugin提取公用代碼的3種方式

  通過CommonsChunkPlgin這個外掛程式,我們可以把公用代碼提取出來,有下列三個辦法:

  1、傳入字串參數 

new webpack.optimize.CommonsChunkPlugin("commons.js")//預設會把所有的入口節點的公用代碼給提取出來,產生一個common.js

  2、數組格式

new webpack.optimize.CommonsChunkPlugin("common.js",["main","index","user"]),

  3、(推薦)

new webpack.optimize.CommonsChunkPlugin({   name:"common",     //注意:不需要.JS尾碼   chunks:["main","user","index"]       //提取公用部分})
三、利用webpack在項目中使用jQuery外掛程式的正確姿勢

  1、我們先用土辦法引用兩個jquery外掛程式,在先前用來做測試的login.html中的表單加上ID,對需要做驗證的文本筐加入代碼。

  2、在login.js中寫如一個SCRIPT程式碼片段

require("./css/user.css");$.validator.setDefaults({    submitHandler: function() {        alert("驗證通過!");    }});$(document).ready(function() {    $("#txtUserLogin").formInputLetter({        len : 10,//限制輸入的字元個數        showId : "lenMsg"//顯示剩餘字元文字標籤的ID    });    $("#userfrm").validate();});

 

  OK,node中webpack,看下,能實現我們預想的登入驗證效果,不過這不是我們想要的。。。

  我們在LOGIN中加入下面的引用,

require("./lib/jquery.validate.min.js");require("./lib/jquery.formInputLetter.js");

  而不再使用原來的土方法引用,這樣更方便和先進。

  既然我們已經引用了,那麼我們也應該在WEBPACK.CONFIG.JS中寫入代碼,讓webpack能把這兩個外掛程式打包並分離公用部分。

著作權聲明:筆記整理者亡命小卒熱愛自由,崇尚分享。但是本筆記源自www.jtthink.com(程式員在囧途)沈逸老師的《前端開發速學成財(nodejs+gulp+webpack基礎實戰篇)》。本學習筆記小卒於部落格園首發, 如需轉載請尊重老師勞動,保留沈逸老師署名以及課程來源地址 .

上一課:《nodejs+gulp+webpack基礎實戰篇》課程筆記(五)-- 實戰演練,構建使用者登入

下一課:

 

  

 

《nodejs+gulp+webpack基礎實戰篇》課程筆記(六)--附加課

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.