您好,登錄后才能下訂單哦!
這篇文章主要介紹了Rollup入門實例代碼分析的相關(guān)知識,內(nèi)容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇Rollup入門實例代碼分析文章都會有所收獲,下面我們一起來看看吧。
僅僅是 ES Module 的打包器
Rollup 與 Webpack 作用類似,相比于Webpack,Rollup更為小巧
Rollup 中并不支持類似 HRM 特性
初衷:提供一個充分利用ESM(ES Module)各項特性的高效打包器
安裝:yarn add rolluo --dev 用法: yarn rollup //不傳遞任何參數(shù)的情況下,打印Rollup的幫助信息 yarn rollup ./src/index.js --format iife //執(zhí)行index.js文件并以iife(自調(diào)用函數(shù))的方式輸出(--format指定輸出格式) yarn rollup ./src/index.js --format iife --file dist/bundle.js //輸出文件到dist/bundle.js 默認開啟chunk去掉多余代碼,優(yōu)化輸出結(jié)果
export default { input: 'src/index.js', output: { file: 'dist/bundle.js', format: 'iife' } }
插件是Rollup的擴展途徑
Rollup默認只能根據(jù)文件路徑加載本地的文件模塊,第三方模塊不能直接通過模塊名稱去導(dǎo)入
rollup-plugin-node-resolve:安裝后Rollup可直接通過模塊名稱導(dǎo)入模塊 安裝:yarn add rollup-plugin-node-resolve --dev
import resolvefrom 'rollup-plugin-node-resolve' export default { input: 'src/index.js', output: { file: 'dist/bundle.js', format: 'iife' }, plugins: [ resolve() ] }
rollup-plugin-commonjs:因為Rollup默認只能處理ESM模塊,使用這個插件Rollup就可以處理CommonJS
安裝:yarn add rollup-plugin-commonjs --dev
import commonjsfrom 'rollup-plugin-commonjs' export default { input: 'src/index.js', output: { file: 'dist/bundle.js', format: 'iife' }, plugins: [ commonjs() ] }
運行:yarn rollup
import('./logger').then(({ log }) => { log('code splitting~') })
export default { input: 'src/index.js', output: { dir: 'dist', format: 'amd' } }
多入口打包內(nèi)部會自動提取公共模塊,也就是說內(nèi)部會使用代碼拆分
export default { input: ['src/index.js', 'src/album.js'], output: { dir: 'dist', format: 'amd' } }
export default { input: { foo: 'src/index.js', bar: 'src/album.js' }, output: { dir: 'dist', format: 'amd' } }
Rollup優(yōu)勢:
輸出結(jié)果更加扁平(執(zhí)行效率更高)
自動移除未引用的代碼
打包結(jié)果依然完全可讀(和手寫代碼一致)
Rollup缺點:
加載非ESM的第三方模塊比較復(fù)雜(需要配置一大堆插件)
模塊最終都被打包到一個函數(shù)中,無法實現(xiàn)HMR
瀏覽器環(huán)境中,代碼拆分功能依賴AMD庫
選用:
開發(fā)應(yīng)用程序 選用Webpack,大而全
開發(fā)框架或類庫 選用Rollup,小而美
零配置的前端應(yīng)用打包器
安裝:
yarn add parcel-bundler --dev
運行:
yarn parcel src/index.html //index.html為入口文件
優(yōu)勢:
支持自動安裝依賴 支持動態(tài)導(dǎo)入 相同體量下,Parcel比Webpack打包要快,因為Parcel使用的是多進程同時工作,充分發(fā)揮了多核CPU的性能(Webpack也可以使用happypack插件實現(xiàn)多進程)
關(guān)于“Rollup入門實例代碼分析”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對“Rollup入門實例代碼分析”知識都有一定的了解,大家如果還想學(xué)習更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。