Rollup 打包工具的介紹和使用

rollup.js 打包工具

參考鏈接:https://rollupjs.org/ 官網(wǎng)
介紹:
Rollup is a module bundler for JavaScript which compiles small pieces of code into something larger and more complex, such as a library or application. It uses the new standardized format for code modules included in the ES6 revision of JavaScript, instead of previous idiosyncratic solutions such as CommonJS and AMD. ES6 modules let you freely and seamlessly combine the most useful individual functions from your favorite libraries. This will eventually be possible natively, but Rollup lets you do it today.
Rollup 是一個(gè)JavaScript編寫(xiě)的一小段代碼變得更大和更復(fù)雜的模塊式一忱,如庫(kù)或應(yīng)用程序抽诉。它采用新的標(biāo)準(zhǔn)化格式的代碼模塊中包含JavaScript 6修訂,代替了以往的獨(dú)特的解決方案如CommonJS和AMD甸赃。ES6模塊讓你自由地和無(wú)縫地結(jié)合最有用的個(gè)體功能從您最喜愛(ài)的圖書(shū)館。這將最終有可能來(lái),但總讓你今天做。

它的其中一個(gè)優(yōu)點(diǎn)是打包你的 js 文件的時(shí)候如果發(fā)現(xiàn)你的無(wú)用變量著洼,會(huì)將其刪掉

參考鏈接:https://rollupjs.org/repl?version=0.51.8&shareable=JTdCJTIybW9kdWxlcyUyMiUzQSU1QiU3QiUyMm5hbWUlMjIlM0ElMjJtYWluLmpzJTIyJTJDJTIyY29kZSUyMiUzQSUyMmltcG9ydCUyMCU3QiUyMGN1YmUlMjAlN0QlMjBmcm9tJTIwJy4lMkZtYXRocy5qcyclM0IlNUNuY29uc29sZS5sb2coJTIwY3ViZSglMjA1JTIwKSUyMCklM0IlMjAlMkYlMkYlMjAxMjUlMjIlN0QlMkMlN0IlMjJuYW1lJTIyJTNBJTIybWF0aHMuanMlMjIlMkMlMjJjb2RlJTIyJTNBJTIyJTJGJTJGJTIwVGhpcyUyMGZ1bmN0aW9uJTIwaXNuJ3QlMjB1c2VkJTIwYW55d2hlcmUlMkMlMjBzbyU1Q24lMkYlMkYlMjBSb2xsdXAlMjBleGNsdWRlcyUyMGl0JTIwZnJvbSUyMHRoZSUyMGJ1bmRsZS4uLiU1Q25leHBvcnQlMjBmdW5jdGlvbiUyMHNxdWFyZSUyMCglMjB4JTIwKSUyMCU3QiU1Q24lNUN0cmV0dXJuJTIweCUyMColMjB4JTNCJTVDbiU3RCU1Q24lNUNuJTJGJTJGJTIwVGhpcyUyMGZ1bmN0aW9uJTIwZ2V0cyUyMGluY2x1ZGVkJTVDbmV4cG9ydCUyMGZ1bmN0aW9uJTIwY3ViZSUyMCglMjB4JTIwKSUyMCU3QiU1Q24lNUN0JTJGJTJGJTIwcmV3cml0ZSUyMHRoaXMlMjBhcyUyMCU2MHNxdWFyZSglMjB4JTIwKSUyMColMjB4JTYwJTVDbiU1Q3QlMkYlMkYlMjBhbmQlMjBzZWUlMjB3aGF0JTIwaGFwcGVucyElNUNuJTVDdHJldHVybiUyMHglMjAqJTIweCUyMColMjB4JTNCJTVDbiU3RCUyMiU3RCU1RCUyQyUyMm9wdGlvbnMlMjIlM0ElN0IlMjJmb3JtYXQlMjIlM0ElMjJ1bWQlMjIlMkMlMjJnbG9iYWxzJTIyJTNBJTdCJTdEJTJDJTIybmFtZSUyMiUzQSUyMm15QnVuZGxlJTIyJTJDJTIyYW1kJTIyJTNBJTdCJTIyaWQlMjIlM0ElMjIlMjIlN0QlN0QlMkMlMjJleGFtcGxlJTIyJTNBbnVsbCU3RA==

它還有一個(gè)比較強(qiáng)大的功能是,可以將你的 js 中的代碼而叼,編譯成你想要的格式身笤,如下圖

image.png
  1. 接下來(lái) 做一個(gè) demo ,在桌面新建一個(gè) rolluptest 文件夾

參考鏈接:https://www.cnblogs.com/vajoy/p/5518442.html

  1. 在命令行中裝包

參考鏈接:https://github.com/rollup/rollup github

 cnpm install --global rollup
  1. 初始化項(xiàng)目
npm init
  1. 在項(xiàng)目中新建一個(gè)配置文件 rollup.config.js
    編輯 rollup.config.js 文件
export default {
    //目錄
    entry: 'src/main.js',
    //你想將其格式化成什么格式(必選項(xiàng)不然會(huì)報(bào)錯(cuò))
    //format: 'es',
    dest: 'build/bundle.js' // 輸出文件
};
  1. 在項(xiàng)目中新建文件結(jié)構(gòu)如下

src -> main.js
build -> maths.js

  1. 編輯文件
    main.js
import { cube } from './maths.js';
console.log( cube( 5 ) ); // 125

maths.js

export function square ( x ) {
    return x * x;
}

export function cube ( x ) {
    return x * x * x;
}
  1. 執(zhí)行程序
// -c 是直接執(zhí)行的  config 文件
//-c, --config                Use this config file (if argument is used but value
   is unspecified, defaults to rollup.config.js)

rollup -c

這里報(bào)了如下圖所示的錯(cuò)誤

image.png

說(shuō)明我們必須選擇一種編譯輸出的格式
編輯 rollup.config.js 文件

export default {
    //目錄
    entry: 'src/main.js',
    //你想將其格式化成什么格式
    format: 'es',
    dest: 'rel/bundle.js' // 輸出文件
};
  1. 再執(zhí)行程序 $ rollup -c葵陵,成功之后你會(huì)發(fā)現(xiàn) build 文件夾中新生成了一個(gè) bundle.js 文件
    bundle.js
function cube ( x ) {
    return x * x * x;
}

console.log( cube( 5 ) ); // 125

這里將我們 maths.js 文件中前面導(dǎo)出的 square 函數(shù)給自動(dòng)刪掉了 因?yàn)閷?dǎo)出會(huì)默認(rèn)只生效最后的那個(gè)

  1. 我們可以在 rollup.config.js 文件中 加入 sourceMap 屬性液荸,方便我們查看編譯的代碼去了哪里
export default {
    //目錄
    entry: 'src/main.js',
    //你想將其格式化成什么格式
    format: 'es',
    sourceMap: true,   //加上這里即可
    dest: 'build/bundle.js' // 輸出文件
};

再執(zhí)行程序 $ rollup -c,會(huì)發(fā)現(xiàn)在 build 文件夾中生成了一個(gè) bundle.js.map文件
bundle.js.map

{"version":3,"file":"bundle.js","sources":["../src/maths.js","../src/main.js"],"sourcesContent":["export function square ( x ) {\r\n\treturn x * x;\r\n}\r\n\r\nexport function cube ( x ) {\r\n\treturn x * x * x;\r\n}","import { cube } from './maths.js';\r\nconsole.log( cube( 5 ) ); // 125"],"names":[],"mappings":";;AAIO,SAAS,IAAI,GAAG,CAAC,GAAG;CAC1B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;;;CACjB,DCLD,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC"}

bundle.js 文件的最后一行也多了一句注釋

//# sourceMappingURL=bundle.js.map
  1. 最后說(shuō)下:

Rollup 也支持直接在模塊中來(lái)被調(diào)用執(zhí)行脱篙,這樣很方便跟 grunt/gulp 等工具進(jìn)行協(xié)作娇钱。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市绊困,隨后出現(xiàn)的幾起案子文搂,更是在濱河造成了極大的恐慌,老刑警劉巖秤朗,帶你破解...
    沈念sama閱讀 221,576評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件煤蹭,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡取视,警方通過(guò)查閱死者的電腦和手機(jī)硝皂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,515評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)贫途,“玉大人吧彪,你說(shuō)我怎么就攤上這事《纾” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,017評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)怨酝。 經(jīng)常有香客問(wèn)我傀缩,道長(zhǎng),這世上最難降的妖魔是什么农猬? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,626評(píng)論 1 296
  • 正文 為了忘掉前任赡艰,我火速辦了婚禮,結(jié)果婚禮上斤葱,老公的妹妹穿的比我還像新娘慷垮。我一直安慰自己,他們只是感情好揍堕,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,625評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布料身。 她就那樣靜靜地躺著,像睡著了一般衩茸。 火紅的嫁衣襯著肌膚如雪芹血。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,255評(píng)論 1 308
  • 那天楞慈,我揣著相機(jī)與錄音幔烛,去河邊找鬼。 笑死囊蓝,一個(gè)胖子當(dāng)著我的面吹牛饿悬,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播聚霜,決...
    沈念sama閱讀 40,825評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼狡恬,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了俯萎?” 一聲冷哼從身側(cè)響起傲宜,我...
    開(kāi)封第一講書(shū)人閱讀 39,729評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎夫啊,沒(méi)想到半個(gè)月后函卒,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,271評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡撇眯,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,363評(píng)論 3 340
  • 正文 我和宋清朗相戀三年报嵌,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片熊榛。...
    茶點(diǎn)故事閱讀 40,498評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡锚国,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出玄坦,到底是詐尸還是另有隱情血筑,我是刑警寧澤绘沉,帶...
    沈念sama閱讀 36,183評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站豺总,受9級(jí)特大地震影響车伞,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜喻喳,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,867評(píng)論 3 333
  • 文/蒙蒙 一另玖、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧表伦,春花似錦谦去、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,338評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至翔怎,卻和暖如春窃诉,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背赤套。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,458評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工飘痛, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人容握。 一個(gè)月前我還...
    沈念sama閱讀 48,906評(píng)論 3 376
  • 正文 我出身青樓宣脉,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親剔氏。 傳聞我的和親對(duì)象是個(gè)殘疾皇子塑猖,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,507評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • 無(wú)意中看到zhangwnag大佬分享的webpack教程感覺(jué)受益匪淺,特此分享以備自己日后查看谈跛,也希望更多的人看到...
    小小字符閱讀 8,178評(píng)論 7 35
  • 最近在學(xué)習(xí) Webpack,網(wǎng)上大多數(shù)入門教程都是基于 Webpack 1.x 版本的,我學(xué)習(xí) Webpack 的...
    My_Oh_My閱讀 8,190評(píng)論 40 247
  • 在現(xiàn)在的前端開(kāi)發(fā)中羊苟,前后端分離、模塊化開(kāi)發(fā)感憾、版本控制蜡励、文件合并與壓縮、mock數(shù)據(jù)等等一些原本后端的思想開(kāi)始...
    Charlot閱讀 5,448評(píng)論 1 32
  • 彼岸花(Lycorisradiata)阻桅,別名“曼珠沙華”又稱“舍子花”凉倚,多年生草本植物。 (紅色彼岸花)意義:音義...
    啊常的簡(jiǎn)書(shū)閱讀 1,158評(píng)論 0 7
  • 點(diǎn)燈嫂沉,展卷稽寒。 橘光下,文字開(kāi)始在紙頁(yè)上旋轉(zhuǎn)出優(yōu)雅的芭蕾趟章,靜默里杏糙,掛鐘發(fā)出悠揚(yáng)的聲音慎王,一日的勞碌過(guò)后,于此時(shí)搔啊,放空自...
    苗戈兒閱讀 228評(píng)論 0 0