亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

webpack深入與實戰

難度中級
時長 3小時21分
學習人數
綜合評分9.60
259人評價 查看評價
9.8 內容實用
9.5 簡潔易懂
9.5 邏輯清晰
  • output占位符[name]/[hash]/[chunkhash]

    查看全部
  • webpack --config webpack.dev.config.js指定配置文件

    查看全部
  • require('style-loader1css-loader!./style.css'); // reqiure配和css-loader加載css

    webpack hello.js hello.bundle.js --module-bind 'css=style-loader!css-loader' // 命令行執行

    查看全部
  • webpack支持的引用方式

    • ES6的模塊化

    • commonJS

    • AMD

    require js 屬于commonJS

    查看全部
  • babel:Babel-loader,Babel-core,Babel-preset-latest
    查看全部
  • webpack? 要打包的文件.js? 打包后的文件.js--module-bind 'css=style-loader!css-loader'? ? ?//js解析css依賴的loader

    --watch? ? ? ? ? ? ? ? ?//自動打包

    webpack hello.js hello.buind.js--module-bind'css=style-loader!css-loader'--watch


    查看全部
  • html-webpack-plugin

    查看全部
  • 優化打包速度,exclude
    查看全部
  • css 自動加前綴 ===> postcss-loader

    css-loader?importLoader=1

    查看全部
  • 對css樣式中引入的圖片文件(如設置背景的圖片)或在根目錄下的index.html中通過img標簽引入的圖片進行打包

    圖片路徑設置為相對路徑如:./../img.jpg

    安裝file-loader:npm install file-loader --save-dev

    添加loader:https://img1.sycdn.imooc.com//5b8a57520001aa2a03500086.jpg

    最后再打包


    在模板中引用圖片:除了安裝和配置loader方法一樣時,注意在模板中引用圖片的路徑要進行特殊的設置,如下:

    https://img1.sycdn.imooc.com//5b8a58970001368c06500187.jpg

    打包后圖片輸出的其他設置:

    https://img1.sycdn.imooc.com//5b8a59950001ddaf05420188.jpg


    url-loader的使用:

    使用場景:當文件大小大于了設置的限制大小,則圖片就交由file-loader進行處理;當圖片大小低于限制大小,就會將圖片轉為base64編碼,不再是一個url(不再是一個http請求),圖片會被打包進html,css,js

    如何使用:

    首先安裝:npm install url-loader --save-dev

    引用:

    https://img1.sycdn.imooc.com//5b8a5b16000181b004560171.jpg

    兩種打包方式的比較:

    1. 通過http請求load進來。瀏覽器會有緩存,比較適用于重復性較高的圖片。

    2. 打包成base64。任何地方要用時,都會有base64編碼存在那里,會造成代碼的冗余,增加代碼的體積。


    圖片壓縮 image-webpack-loader:將圖片進行壓縮之后在進行url或file-loader的處理

    安裝:npm install image-webpack-loader --save-dev

    使用:

    https://img1.sycdn.imooc.com//5b8a5d0c0001ff5b06730159.jpg

    此外:image-webpack-loader還有很多關于png.jpg等圖片文件優化處理的設置,具體可以查看github上的image-webpack-loader官網可以看到

    查看全部
  • 對模板進行打包:將模板處理成一個字符串賦值給一個對象的某個屬性,再返回這個對象,最后通過對象的屬性就可調用這個模板

    webpack和npm run webpack的區別:前者是webpack默認的基本命令,后者是執行package.json里面的scripts標簽。


    html-loader可以處理webpack中的HTML模板?

    ?1.安裝:npm install html-loader --save-dev?

    ?2.配置:{ test:/\.html$/, loader:'html-loader' }?

    ?3.app.js中引入并初始化:

    ?import './css/common.css';

    ?import Layer from './components/layer/layer.js';?

    ?const App = function() {

    ????????var dom = document.getElementById('app');?

    ?????????var layer = new Layer();?

    ?????????dom.innerHTML = layer.tpl;?

    ?}?

    ?new App();?

    ?注意事項:

    1. html-webpack-plugin 會和 html-loader沖突,如果引入html-loader 會導致<%=htmlWebpackPlugin.options.title %> 編譯不出。

    2. inject: 'body'不能寫成head,那樣獲取不到app這個id,因為<div id='app'></div>是在body中。

    3. 編譯后不會再 ./dist/index.html中顯示,但在瀏覽器中可以顯示。


    webpack的tpl模板支持ejs語法,?

    ?1.ejs安裝:cnpm install ejs-loader --save-dev?

    ?2.配置:{ test:/\.tpl$/, loader:'ejs-loader' }?

    ?3.寫法:?

    ?????????<h1>study hard! my name is <%=name%></h1>?

    ?????????<%for(var i=0;i<arr.length;i++){%>?

    ?????????<%=arr[i]%>?

    ?????????<%}%>?

    ?4.傳參:dom.innerHTML = layer.tpl({ name:'xiaohe', arr:['oppo','huawei','xiaomi'] });


    查看全部
    0 采集 收起 來源:處理模板文件

    2018-09-01

  • 處理less文件,要安裝less-loader:(將less轉化為css)

    npm install less-loader --save-dev

    (loader的處理方式是從右到左,為loader屬性設置一串的loader值后,會首先處理最右邊的loader)

    使用配置如下:

    https://img1.sycdn.imooc.com//5b8a47860001d9df05550144.jpg

    以上配置打包后,就可將less文件轉化成css并通過style標簽引入到打包后的index.html頭部了,且less中兼容性不好的屬性也會經過postcss的處理自動添加上前綴

    如果在less文件中使用了@import引入了其他less文件,當通過上述設置直接打包后,被引入模塊同樣也會經過postcss的處理,這跟處理css文件是有區別的

    如果使用了sass文件,同樣也是先安裝再使用

    npm i sass-loader --save-dev

    https://img1.sycdn.imooc.com//5b8a498a0001ffe305240123.jpg

    查看全部
  • 添加css-loader和style-loader(使得打包后在index.html文件頭部會添加style標簽引入打包后的css文件)處理css文件

    https://img1.sycdn.imooc.com//5b8a3f260001d6da06510399.jpg


    當css文件中有一些瀏覽器支持不是很好的屬性設置的時候比如flex,我們可能需要為其添加不同的前綴,此時可以使用webpack為這些兼容性不好的屬性進行統一處理(如加前綴,這是該loader的一個插件功能,還有很多其他的插件可以添加實現更多的功能),通過使用postcss-loader(npm官網有詳細解釋):

    第一步安裝loader??npm install postcss-loader --save-dev? 如果統一進行加前綴處理的話,要進行一下安裝autoprefixer 插件??npm install autoprefixer --save-dev

    https://img1.sycdn.imooc.com//5b8a41410001355307880446.jpg

    第二步使用:

    https://img1.sycdn.imooc.com//5b8a42f60001278107640312.jpg

    經過處理后的屬性打包結果如下:

    https://img1.sycdn.imooc.com//5b8a43430001f74403160111.jpg


    當css文件中使用了@import ‘路徑’引入了其他文件的css塊,經過webpack打包后,這一塊會經過css-loader和style-loader的處理,在index.html文件中頭部通過style標簽引入這一塊的樣式設置,但是它沒通過postcss為樣式添加前綴,解決方法如下:

    https://img1.sycdn.imooc.com//5b8a456900015c1e08600164.jpg

    查看全部
  • 如何為loaders中的include或exclude屬性設置絕對路徑值,這樣可以使打包速度加快:

    https://img1.sycdn.imooc.com//5b8a3ae20001ec7708510585.jpg

    查看全部
  • 使用預處理js的loader:babel(將es6等轉換為瀏覽器可以直接處理的JS)

    第一步要安裝 命令行輸入npm i --save-dev babel-loader babel-core

    第二步配置babel使其可以轉化指定版本的js,如es2015,使用presers進行配置? 指定完之后需安裝?npm i --save-dev babel-preset-latest

    第三步 使用loader并進行相關配置

    https://img1.sycdn.imooc.com//5b8a34e300015fed05000666.jpg

    除了直接在loader使用的時候配置babel,也可以在package.json中進行babel的配置如下:

    https://img1.sycdn.imooc.com//5b8a35500001d36406000494.jpg

    loader其他參數講解:exclude(設置不需要處理的文件的目錄)、include(需要使用該loader去處理的文件目錄,只打包該目錄下的文件)、loaders(loaders是數組類型的一連串loader,不再是單個字符串類型的單個loader)

    https://img1.sycdn.imooc.com//5b8a3756000121e904470386.jpg

    查看全部

舉報

0/150
提交
取消
課程須知
1、對模塊化開發有一些了解 2、使用過 node 對 npm 有基本的了解 3、對打包有一個基本的概念
老師告訴你能學到什么?
1、模塊化的開發 2、webpack 的 CLI (命令行) 3、webpack 如何在項目中打包 4、webpack 如何處理項目中的資源文件

微信掃碼,參與3人拼團

微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網的支持!