Ngobrolin Package Manager - Ngobrolin WEB ep52
Yuk mari kita diskusi dan ngobrol ngalor-ngidul tentang dunia web. Agar tetap up-to-date dengan teknologi web terkini. Topik, tautan dan pertanyaan menarik bisa dilayangkan ke https://bit.ly/ngobrolinweb ----------------------------------------------------------------------------------- Bergabung menjadi anggota elit di kanal ini: https://www.youtube.com/channel/UCHhAlFGFCGgIusQkQIqJLYw/join Donasi dapat meningkatkan kualitas kanal ini: 💰 https://karyakarsa.com/rizafahmi/tip 💸 https://sawer Kunjungi https://ngobrol.in untuk catatan, tautan dan informasi topik lainnya.
0:00yo yo yo halo halo selamat malam kita ketemu lagi di hari selasa malam seperti biasa
0:12selasa malam adalah waktunya ngobrolin wet kita tetap lama nih komposisinya masi masi riza
0:21masis ya di episode yang ke 52 atau episode 53 kita menyebutnya gimana sih 52 dia ya
0:31tetep aja sesuai angka sesuai angka sesuai angka episode ke 52 ini ya kita akan membahas tentang
0:40package menajemen sesuatu yang lagi rameh ya rameh apa itu selalu rameh ini selalu rameh periodikal setiap
0:52ada ada kena masalah ada yang sesuatu yang menawarkan sesuatu yang lebih cepat ada yang baru
1:01gitu kan inovasi inovasi baru ya package menajemen package menajemen ini tergolong baru ya terutama
1:07di web dan javascript karena sebelumnya tidak ada iya karena tidak ada kalau nanti kita akan
1:14bahas ya sejarahnya gimana sekilas jadi sebelum kesana mungkin kita bahas dulu tentang package
1:21menajemen itu apa sih nah ini ada artikel dari mdn yang cukup mewakili jadi salah satu kerjanya
1:28job desk nya package menajemen adalah dependensi menajemen jadi dependensi itu adalah third party
1:34software atau library atau code yang ditulis oleh orang lain terus code itu atau library itu kita
1:45gunakan untuk solving problem yang untuk aplikasi kita sendiri untuk aplikasi kita sendiri bisa yang
1:53dari hal hal kecil misalkan human readable date ya kalau pakai date mungkin dulu kalau pakai
1:59javascript agak susah gitu kan kita butuh moment js kita butuh date fns dan lain-lain itu banyak
2:06ya nah itu adalah dependensi dan yang menariknya dependensi ini bisa juga punya dependensi dari
2:13dependensi yang lain gitu dia saling tergantung sub dependensi sisilahnya jadi kalau misalkan kita
2:19install apa ya react ya react itu tergantung ke beberapa library lain misalkan ada react dom
2:27misalkan ada apa lagi ya banyaklah ya banyak ya utility utility makanya makanya kalau kita install
2:37dan lakukan npm install tiba-tiba di folder node modus kita langsung banyak gitu kan itu adalah
2:43sampai banyak webnya ya apa ya biasa kan kita install satu nih npm install express wah langsung
2:51banyak gitu padahal kita cuman install satu ternyata dependensinya banyak gitu gimana Ivan
2:57ya sedikit lebih jauh lagi tentang depan apa namanya package manajemen ini ya ini kan yang yang
3:05dicerita mdn ini adalah untuk yang javascript tapi kalau kita lebih jauh lagi package manajer ini
3:12cukup populer dan sudah ada sejak lama itu dari linux environment jaman dulu banget kalau saya
3:21lakukan quick searching package manajemen yang pertama kali itu justru adanya di tahun 89 ya jadi
3:30sorry tahun 94 mulai ada mulai ada itu mulai dibangun dari 89 dan 94 itu mulai ada itu waktu
3:38terus zamannya namanya Smith smit dan itu dari IBM AIX jaman itu waktu itu kan jadi begini ceritanya
3:52package manajemen kalau yang di linux ekosistem itu kan kita mau install sesuatu butuh dependensi
4:01beda dengan kita install sesuatu yang ada di windows kalau di windows package installnya kita itu
Lihat transkrip lengkap
4:07sudah nge-bundle sudah ada dllnya sudah dibundle jadi dll dan XS nya XS nya sudah di SES nya
4:19conf nya cnf nya dll nya sudah dibawa semua di package installer bedanya di windows ekosistem begitu ya
4:28nah makanya dulu teman-teman kalau misalnya install sesuatu dari cd yang di sewa pergi sewa cd bajatan yang
4:40di sewa installer cd bajatan yang di sewa yang di sewa installnya itu kan gede banget ya itu semua
4:50dibawa jadi zip-zip file bahkan apa ya kalau package manager zip bukan zip ya apa installer itu
4:58biasanya exe MSI MSI MSI Microsoft installer nah mse.mse kan tinggal klik dua kali terus ada ada pop up nya
5:12next next terinstall lah semua bisa kita main game nya contoh ya itu semua sudah dibawa kalau di
5:21sistem windows tetapi kalau di linux ekosistem itu berbeda karena kalau kita mau install sesuatu
5:29misalnya install kalau gcc sudah pasti ada ya kalau let's say mau install FFmpeg ya kan itu kan
5:38mesti nggak selalu ada FFmpeg di ya let's put it simple in simple way mungkin FFmpeg film film film film
5:46itu bukan nggak semua distro bawa film sebagai default install ya nggak mesti jadi kalau kita mau install
5:56kalau misalnya di tergantung package installer kalau misalnya di ubun itu apt apt install film nah
6:05film itu kan punya ini ya punya hanya executable film tapi film itu membutuhkan library lain apapun
6:17itu ya mau abcde dan ternyata library lainnya abcde itu butuh butuh library lain lagi XYZ itulah
6:27package manager itu berfungsi kalau nggak dulu zaman itu zaman dulu itu jamannya debian itu
6:38pakai dpkg ya dpkg jamannya si salah kubu kubunya debian dpkg kubunya kubunya redhead redhead
6:49entos rpm ya itu juga ada lagi beda-beda semuanya iya dan itu pusing nah makanya mereka bikin
6:58centralized repositori jaman itu sudah ada namanya repositori ya di mana repositor-repositori
7:08sudah kontain package nya versi nya fourth nya ya misalnya sorry arhitekturnya bahkan arhitekturnya
7:19sampai dependensinya nanti dependensi list nya apa jadi bisa tetap di install berarti itu sebenarnya
7:28apa konsep repositori yang sekarang kita kenal di aplikasi web atau ekosistem javascript itu
7:36kursornya kayak nenek moyangnya itu ya berarti istilah repositori dan daftar packaging digunakan
7:42versinya apa prinsipnya berarti dari ambil dari sini dan jaman itu karena komunitas linux itu
7:50kuat jadi ya banyak researcher-researcher atau banyak mirornya di mana-mana iya salah satunya
8:01kambing ada yang tahu kambingnya iya kambingnya kambing itu adalah server dari UI yang memiror semua
8:07distro-distro terkenal dari linux termasuk juga repositori ini sampai sekarang masih aktif deh masih
8:13ada kadang kalau nge-strip tuh suka nggak sengaja menemukan iya karena kan kalau dulu kan kita pakai
8:21internet kan kalau keluar itu lambat sekali ya kalau di lokal itu penceng kan ix gitu kan istilahnya kan
8:27lokal internet kan nah itu kita ganti tuh APT repositori nya ke kambing ke repositori lokal sehingga
8:36ya instalasi dan kalau dia sentos dulu sentos itu bisa nyari repositor dia bisa punya kehandalannya
8:45dia bisa nyari repositori yang terdekat hmm itu kerennya si sentos ya kita juga punya distro
8:53dia punya distro Blancon Blancon ada banyak sih ada beberapa sih yang tapi udah disenangkan
9:00juga iya dan itu sekilas ya sekilas beda-beda ya masing-masing os beda-beda kalau windows itu dia
9:10ada installernya dia nginstal ke mungkin dll nya dia kopi ke file ke folder mungkin windows 32 atau
9:19mana gitu ya terus installernya dia taro di program start dan lain-lain gitu kan kalau linux dia
9:26mungkin cenderung lebih kecil file nya tapi dependensinya di download makanya kalau kita
9:31install linux itu biasanya butuh internet kalau windows kadang-kadang kalau kita install windows
9:35kan satu cd aja cukup ya atau beberapa cd lah beberapa cd betul dan windows package manager itu baru
9:42ada baru ada akhir-akhir namanya winget winget juga ada chocolate juga ada baru ada dua tiga tahun
9:52belakangan iya yang agak sedikit berbeda lagi mac os mac os lebih sederhana lagi file nya satu enggak
10:00sebelum itu kalau kita misal mau install aplikasi kan kita download tuh download app dot app biasanya kan
10:07kita tinggal jemblungin ke folder aplikasi udah jadi karena itu sebenarnya kayak zip kan semacam
10:12zip kan ya dalamnya ada kan di finder kan bisa dibuka ada isinya sudah instilahnya kalau jaman
10:21sekarang sudah sudah di bandel satu bandel aja satu file that's it gak perlu di install gak ada
10:28di install gitu kan semuanya jadi gak nyampah istilahnya jadi lebih sederhana juga kalau mau
10:38install dan install tapi kekurangannya adalah file nya ukurannya besar karena udah dibandling semua
10:44kayak docker gitu ya kayak image gitu baru kemudian ada bruh bruh bruh bruh itu justru lebih milip
10:53index dia sistemnya dia ada satu direktori khusus gitu kan yang menyimpan lebrese.so.dll
11:02dan lain-lain library yang digunakan di satu folder itu homebrew namanya itu juga package manager
11:09di kesempatan kali ini saya cuma menyampaikan ke maintainer homebrew itu sehat-sehat lah dan
11:17monggak-monggak kalian masuk surga monggak-monggak kalian masuk surga membantu sekali ya banyak orang
11:25terbantu banyak orang terbantu dan juga maintain linux dan npm kedepannya ngomongin sejarah sekarang
11:48kita menuju ke sejarahnya npm ya dari node.js sebenarnya ya iya jadi node.js ini kalau kita
11:57install biasanya dia membawa sebuah package manager namanya npm node package manager ya seperti kita
12:02tahu 2009 ditambah awal mulanya iya tapi kayaknya awalnya belum ada npm disini mungkin dia awalnya
12:10mungkin di tahun yang sama tapi gak langsung iya tapi kayaknya gak barengan jadi dia bikin node.js dulu
12:19begitu udah kira-kira udah mvp nya udah jalan baru dia bikin node package manager mungkin sebelum itu
12:25kayaknya udah ada ya beberapa ya kayak di ruby ada ruby gem ada python python ada juga ada juga
12:34kalau php komposer komposer ya komposer tuh kayaknya lebih baru ya komposer itu udah lama ya
12:44ada yang lebih lama dari komposer sebelum komposer apa ya namanya ya sementar kita cari pier ada yang tau pier ya itu lebih jadu lagi pr pr jauh sebelum komposer
13:07jauh sebelum npm juga ya ini pertama kali jadi dia dalam bentuk zip aja kita download biasa
13:12itu taruh di folder kita ini yang pertama tapi kayak versioning nya berarti ada di zipnya itu kalau si pr itu sama
13:24nah dari 2009-2011 baru mencapai versi satu terus juga node.js diadopsi oleh banyak perusahaan besar kemudian
13:33berkembang berkembang sampai akhirnya ini terjadi masalah disini kan ada yang io.js kalau teman-teman
13:42yang penting jadi node.js ini kok versi nya gak naik naik dari 0.12 gitu kan akhirnya komunitas inisiatif bikin sendiri
13:49supaya naikin versi nya aja padahal node.js udah dipake di mana-mana sampai akhirnya balik lagi sama biar bisa support ks yang mudir ya
13:57oh iya betul sama kemudian akhirnya si node.js memutuskan untuk bikin foundation dan io.js dimers balik ke node.js sampai kemudian 2015 ini npm
14:08sudah bisa ada private module kalau yang kita lihat sekarang di npm.js.com kalau teman-teman npm misal itu adalah npm public ya public registry
14:18nanti kita akan bahas tentang public registry nah setahun setelah bukan npm lahir kan 2009-2011 kan setahun setelah foundation ini jalan
14:33muncul satu kejadian insiden yang luar biasa mempengaruhi banyak banyak apa ya banyak program banyak aplikasi ini namanya leftpad
14:45oh yang dia yang bikin padding terus dia hapus dia hapus iya jadi dia bikin sebuah sebuah library namanya leftpad leftpad itu gunanya buat apa ya antara buat iya leftpad itu kan apa
15:04hapus spasi yang ada di sebelah kiri dari strengka iya iya sederhana sekali bisa kita bikin sendiri padahal tapi ternyata leftpad ini banyak dipakai
15:15di library dependen nya banyak sekali kalau kita lihat di npm misalnya kan npm.js.com itu kan apa nih library yang konek misalkan konek ini adalah salah satu dependensi dari express
15:33middleware dia yang memungkinkan middleware di express itu adalah konek nah kita bisa lihat dependen nya dependen nya ini 3000 jadi ada 3000 library yang
15:45di npm yang menggunakan konek iya bayangkan tiba-tiba konek dihapus mati ini semua nggak bisa pakai gitu itu yang kejadian sama si leftpad jadi ketika udah banyak yang pakai yang apa
16:03ke ketergantungan kepada library ini tiba-tiba si leftpad nya dihapus sama pemiliknya hancur itu semua library iya itu kejadian pertama walaupun akhirnya ya bisa recover ya ada alasannya sih entah di hack entah apa gitu ya
16:20atau ngambek juga ya yang terakhir ngambek kan sama kayak faker.js kan ada yang baru kan faker.js lebih baru dari faker.js iya oh no yang kayak gitu juga karena isu ada yang terakhir kan apa ya namanya itu yang dia
16:40hapus ah lupa deh gue lupa oke dan ini bukan hanya sebenarnya bukan hanya kejadian di ekosistem javascript di python juga pernah kejadian karena ini sifatnya demokratis semua orang bisa bikin gitu ya banyak
17:01yang bisa lagunakan jadi banyak yang menyalahgunakan misalkan npm install monggo db kita bikin aja supaya typo monggo d ada monggo dba ada monggo o nya gak ada juga ada gitu dan ada beberapa yang pakai apa yang dibuat untuk ngambil data lah
17:19kripto lah untuk macam-macam ya jadi harus hati-hati juga dalam memilih jadi apa ya selektif lebih selektif gak sembarangan npm install karena ketika kita melakukan npm install tapi ini menarik juga sih apa jadi sebenarnya celah
17:35security yang paling paling rawan itu sisi manusianya ya entah itu kan berarti manusia kita gak terliti kita gak terliti misalnya monggo apalah kuruf l jadi i atau apa monggo bd jadi monggo bd atau nintainer ngambek dan lain-lain itu celah-celahnya dari dulu sampai sekarang gitu-gitu aja ya betul betul cuman katanya ada beberapa netizen yang bilang ya kalau kalau misalkan kayak taipo gt
18:05itu harusnya bisa di apa ya / tapi auto correct common use case / ya mereka ada beberapa yang menyalakan npm nya npm sebagai company ya npm incorporated nya karena itu bisa diantisipasi dengan yang harus ya kayak ini aja lah kayak google play atau app store gitu jadi harus ada proses validasinya bahwa ini benar bahwa ini gak ada apa gitu jangan terlalu demokratis juga jangan terlalu terbuka gitu ya jadi ya banyak lah
18:35kejadian-kejadian baik itu di saya gak tau dirubi ya kalau di python beberapa pernah dengar cuman di bahasa yang lain saya gak tau gitu ya begitulah jadi banyak kejadian sampai / lupa share screen nya apa? / share screen nya mau di nyalakan lagi ya sampai ya terus 2017 setelah kejadian itu setahun setelah kejadian itu npm mulai fokus ke security ya udah udah banyak lagi semakin banyak yang pakai 3 billion
19:05npm download every week bayangkan servernya kayak gimana itu ya / kan kebanyakan static file / iya sih itu bukan download doang ya / betul betul / terus ya selebihnya sih di nps ya secara umum ya cuman beberapa ada npm juga / udah mulai setel ya berarti udah gak ada decision yang
19:31udah gak ada perubahan signifikan lagi berarti kan habis itu / sudah tidak ada perubahan signifikan betul / paling terakhir ya si 2018 itu bisa pakai file mgs / betul nah seperti biasa seringnya untuk aplikasi apa bukan untuk untuk library atau tools open source itu biasanya di apa ya di di drive juga sama komunitas jadi ketika npm ini banyak disibukan oleh kejadian-kejadian
20:01dan incident-incident yang gak penting seperti ini bukan gak penting ya maksudnya yang ya security dan lain-lain jadi mereka kayak apa ya sumber daya tersedot ke hal-hal security npm sebagai tools-nya jadi kurang apa ya fiturnya kurang berkembang gitu muncul lah beberapa alternatif salah satunya yarn yarn ini pada awalnya dibuat / dibuat OFS yang itu ya / iya iya iya iya iya
20:31oleh facebook ya / oleh orang-orang yang saat itu bekerja di facebook ya meta karena waktu itu juga kalau gak salah react udah mulai berkembang ya udah mulai banyak yang pakai dan mereka merasa npm ini terlalu lambat akhirnya mereka bikin fitur utamanya adalah ketika kita sudah pernah melakukan instalasi sebuah package kita gak perlu download lagi dari internet masih tersimpan di cage atau di lokal kita
21:00kalau versi yang sama bahkan internet mati pun kita masih bisa instalasi / bisa dipakai ulang dari / bisa dipakai ulang itu itu / npm yang baru juga sudah bisa cache sih / justru itu yang tadi saya bilang jadi ketika dia kurang berkembang muncul yang baru untuk mendrive si npm-nya supaya berkembang jadi kayak / bagusnya itu system open source gitu ya / iya / iya kayak yang maksudnya kalau ngomong feature nih kan yarn selama beberapa tahun pertama tuh mereka banyak feature yang
21:30npm belum ada kayak workspaces itu yang paling wow banget pas itu ya abis itu mas sekarang npm juga udah ada / udah bisa betul jadi dia ketika dia mendownload sesuatu dari npm registry dia simpan ke hard disk kita jadi kalau misalkan kita install lagi kita gak perlu konek ke internet jadi menghemat bandwidth juga / kita bingung kok hard disk kita cepet ah habis / nah muncul lagi pnpm
22:00pnpm ini jualannya adalah this space efficient pks manager / bisa link ya / bisa link jadi hardlink / hardlink apa softlink ya pokoknya itulah hardlink ya jadi dia disipan di satu repo di satu folder tertentu ketika ada project kita / node folder gitu / ya node modules kita cuma mengarah ke folder yang itu
22:30gitu gitu / jadi gak ditaruh gak bikin lagi singling ya / iya / jadi pokoknya occupy jadi misalnya size nya berapa satu library itu size nya satu mega lah gitu jadi gak di copy jadi satu mega lagi yang dipakai beneran cuma itu ngaruh banget sih kalau apa / ngaruh banget / pengalaman beribagi / iya ngaruh banget sangat berpengaruh itu awalnya awalnya feature awalnya walaupun kemudian berkembang sama kayak yarn juga ya ada workspaces ada macem-macem ya ada banyak berkembang
22:59termasuk juga si pnpm / satu yang gue suka dari yarn keren banget itu gue suka sampai sekarang gak ada kayak yarn outdated meskipun di npm outdated sudah ada / ada / oh tnpm juga ada / yarn outdated itu bisa keren bisa liatin semua / outdated ada recursive ada flagnya macem-macem / tinggal cinta-cinta-cinta update semua yang kita cinta gak perlu satu-satu / look ivan kok hang / hang ya / emang hang / enggak enggak enggak enggak aman aman
23:29oh gue yang yang berarti / oke dan dia berkembang dia namahin kayak support mono repo yang lagi ngetrend juga sekarang kan si yarn juga bisa ya kalau gak salah ya npm juga bisa gak tahu nih / udah bisa semua sekarang / udah bisa semua / dulu yang paling pertama kali yarn yang pakai workspaces / yarn yes sekarang udah bisa semua / ini apa petfif kurang penting gak penting sih kan ini masing-masing tuh library terpisah ya dan gak ada contensi untuk penamaan
23:58itu nyebelinnya jadi kalau yarn pakai istilahnya itu workspaces nah kalau gak salah npm atau npm pakainya workspaces gak ada s nya itu nyebelin banget ya cuma maksudnya secara fungsi sih sebetulnya / sama / kompatibel lah mirip / iya nah temen-temen pakai yang mana nih kalau saya sih pakai pnpm sekarang ya walaupun npm nya ada kalau yarn udah lama gak dipakai karena kebutuhan kalau misalkan kayak ngajar gitu kan
24:28Kita ekspek orang install node, abis itu harus install iarn lagi kan ribet ya, jadi tetap pake npm dari dulu.
24:35Kalau kita pikir ada npm, saya langsung alias npm.
24:40-Alias npm. -Gue belum pernah pake npm.
24:44Itu package.log-nya sama nggak? Atau dia bikin sendiri?
24:50Ada, ada sendiri, tapi bisa dipake yang udah ada.
24:53Tapi mirip sama, maksudnya kompatabel sih.
24:56Intinya kalau project yang sudah pakenya package.log, gimana?
25:01-Tetap ada, tetap dipake. -Paling di warning.
25:06Kamu udah pake package manager lain, kayak standard, itu standard warning.
25:10Kita kalau pake udah ada package.log JSON ya, itu kan tanda pake npm.
25:16Kita pake iarn juga muncul kayak gitu, nah pake npm sama aja.
25:20Tapi kalau fungsi sama aja.
25:24Untuk lebih detailnya, disini ada komparasi command ya, atau perintah.
25:30Kayak misalkan clean cage seperti apa.
25:34Kalau dia nggak ada clean cage karena disimpan semua.
25:38Cuma jadi kayak satu tempat, di satu tempat.
25:42Cara installnya gimana, iarn nggak perlu pake install ya, boleh pake atau nggak, ini optional.
25:47Jadi iarn spasi express, iarn spasi react gitu.
25:51Kalau pnpm dan npm masih sama.
25:54Jadi kayaknya npm sama pnpm, pnpm ini mencontoh sekali commandnya npm.
25:59Tinggal tambahin pn nya aja di depan.
26:02-Biar orang nggak kusing juga sih, ya kan? -Betul.
26:06Dia juga ada add juga ternyata, baru tahu nih.
26:09-Dia ngikutin iarn juga ya, sama kayak. -Jadi kayak react dan p-react.
26:14-P-react. -Oh iya, apa kabarnya kusingnya?
26:18Ntar lagi, ntar lagi ada yang bikin p-view.
26:23P-swell.
26:26-Uninstall, update. -Nah slow p-react, runtimenya nggak perlu p.
26:30NPX, nah NPX ini, ini yang berbeda ya.
26:36NPX ini adalah executable.
26:39Jadi biasanya kalau dulu kita pakai global, kalau sekarang kita bisa langsung.
26:45Nah ini juga nyebelin, karena antara npm, iarn sama pnpm itu command execute-nya lain-lain.
26:53Kalau pnpm itu pnpm exec.
26:59Nggak ada di situ sih, coba bukain ini deh.
27:02Pnpm ada pnpx kan?
27:06Oh iya, ada ya. Mungkin wrapping kalau yang standardnya pnpm exec.
27:12Terus kalau iarn, iarn bukan iarnx tapi dlx.
27:19Pnpx, ada, ada, saya udah pakai.
27:24Kalau iarn dlx ternyata bukan iarnx.
27:29Oh dlx, beda-beda ya.
27:33Buka aja tuh link-nya ada di chat.
27:37Oke. Oh dlx, beda lagi ya.
27:43Itu fungsinya buat meng-execute entah dari lokal maupun dari remote ya.
27:51Jalanin repository remote.
27:55Tiga-tiganya masih di-maintain ya?
27:57Masih, masih.
27:58Oh di-maintain, di-maintain.
28:01Nah.
28:07Iya.
28:11Apa yang?
28:12Iya.
28:22Saya suka pakai ini juga kadang kalau misalnya nggak, misalnya.
28:31Malas install.
28:33Malas install, malas install BabelJS.
28:36Untuk transpile, yaudah NPI, BabelJS, langsung transpile, beres gitu.
28:42Terus sama semua flight, terus kita ngedeside output-nya.
28:46Iya.
28:47Buat testingnya bisa kalau malas.
28:50Oh iya, benar-benar.
28:52Tapi menariknya meskipun npm ada tool sendiri, yarn ada tool sendiri, npm ada tool sendiri,
28:59yang lain-lain mungkin ada lagi ya, yang kita nggak tahu atau ada yang baru lagi nanti.
29:03Tapi mereka, apa ya, mereka mendownload si library-nya berasal dari...
29:11Sumbernya sama.
29:12Sumber yang adalah npmjs.com, istilahnya itu adalah package registry, jadi package index ya.
29:20Search index lah, kalau kita mau cari package apa, kita ke npmjs.
29:26Ini repository.
29:30Iya, registry.
29:31Nah, jadi plot yang belum tahu perlu banget dibedain antara npm sebagai aplikasi software package manager dan npmjs sebagai registry.
29:44Maksudnya mereka itu perusahaan kan, perusahaan yang memiliki layanan registry.
29:49Jadi kalau, walaupun kita pakai yarn, ya sebenarnya download-nya dari npmjs juga, karena itu dua hal yang terpisah.
29:57Github juga punya loh kayaknya.
30:01Github juga ada, ya terakhir-akhir ini mulai banyak yang muncul, dan npm sendiri sebenarnya nggak hanya publik.
30:06Misalkan temen-temen mau bikin aplikasi yang proprietary, nggak boleh dilihat sama orang, tapi butuh npm, butuh installer npm.
30:13Bisa.
30:14Bisa dibikin private.
30:16Apat, private, mereka justru cari duitnya dari situ, untuk akun premium buat scope private.
30:27Betul, baru kemudian si github mengeluarkan package registry juga.
30:32Ini ada link-nya, buka aja Mas Tiza, kalau github gitu.
30:36Ada yang pernah publik ke registry selain npmjs?
30:40Belum.
30:41Ke github?
30:42Di salah satu project client, dan kondonya kan nggak mau di-share.
30:49Nggak boleh di-share.
30:51Nggak boleh di-share.
30:52Ini, jadi cuma cerita aja, jadi kita tuh bikin komponen-komponen, komponen-komponen kita.
31:00Jadi, website-nya ada banyak, mau di-redesign semua, tapi kan komponen-nya sama tuh ya, card, postcard, header, menu-menu.
31:16Kan intinya sama semua gitu ya, cuma beda-beda.
31:19Jadi, dump komponen, artinya komponen hanya menerima props dan...
31:26Nggak ada logiknya lah, pokoknya UI.
31:28Nggak ada logiknya, pokoknya terima props jadi apa gitu.
31:31Nah, jadi kita publish semua komponen-nya ke private npm registry, github dalam hal ini.
31:39Dan ya sudah, pakai itu aja.
31:41Jadi, semuanya dipublish ke sana, dan ada storybook-nya segala macam, lengkap.
31:46Dan untuk supaya bisa publish, karena komponen-nya udah banyak kan.
31:50Jadi, satu, kita nggak pakai honor repo, jadi satu komponen itu satu registry.
31:56Satu package.
31:57Jadi, num add blah-blah slash article-cut small, artikel-cut small contohnya.
32:07Nah, jadi satu-satu.
32:10Untuk supaya, dan kita maintain-nya pakai satu repo kan, satu repo, monor repo.
32:15Dan supaya bisa publish semua kesana, pakainya learner.js.
32:20Oh iya, learner yang ngetrend banget, pernah dulu ya.
32:24Masih mereka masih pakai sampai sekarang, masih stable.
32:28Ntar, kalau buat publish ke github registry, itu berarti di package.json itu cuma ada kayak itunya ya.
32:36Kayak ada field khusus, apa sih publish ya?
32:39Ada config-nya kan, di package.json.
32:42Kita sudah define npm package.github ini, jadi token-nya itu, waktu kita tambahkan itu di lokal.
32:58Nah, soalnya barusan ada pengalaman nggak penting, berusaha mempublish package ke registry github.
33:09Tapi gagal, alasannya lebih nggak penting lagi.
33:12Karena tiba-tiba nggak bisa login ke npm dari command line.
33:18Kan kalau mau publish package, mesti npm publish ya.
33:22Tiba-tiba nggak bisa login.
33:23Maksudnya apa, kan buka UI login di web kan, terus masukin email dan password.
33:30Betul, bukan karena password-nya salah atau apa.
33:33Terus apa sih, ada konfirmasi OTP yang dikirim ke email, tulisannya gitu doang.
33:38Cuma nggak pernah masuk ke email, udah dicoba berkali-kali.
33:41Ya intinya jadi nggak bisa login kan.
33:43Nah, aneh juga kenapa, tapi nggak ada warning apapun.
33:47Jadi kayak cuma, ya kami sudah mengirim OTP ke email anda, silahkan dicek.
33:52OTP-nya nggak pernah masuk.
33:54Terus kan submit ticket ya, submit ticket ke npm.js.
33:57Ya udah, sambil nunggu iseng nih.
33:59Ya kali pengen lah coba, soalnya kan ada UI-nya juga bagus banget di github.
34:05Di url github repo kita kan jadi ada itunya, package-nya.
34:10Udah berusaha nge-setting-setting, nggak bisa-bisa, jadi kesing.
34:14Nah, at the same time, selama kan udah nggak berhasil publish ke github registry,
34:21besok paginya udah dapat respon dari support desk npm.
34:26Ternyata kasusnya adalah gini, kami nggak tahu kenapa email kamu tuh masuk ke blog please.
34:33Nah, sekarang sudah di unblock lagi.
34:36Ya udah, langsung bisa. Udah, selesai.
34:38Ya udah, akhirnya package itu dipublish ke npm, batal gagal berusaha publish ke github.
34:46Kayaknya sering nge-spec.
34:54Jadi, disini juga udah dijelasin ya, package registry itu apa yang tadi udah kita bahas ya, npm.js itu adalah package registry-nya.
35:03Tapi npm bukan hanya satu-satunya opsi, kita bisa pakai Microsoft Azure, ternyata ada servisnya, dan ada github pakai registry.
35:11Ada GitLab juga kalau nggak salah yang ada, dan ada banyak yang lain.
35:15Atlasian ada nggak sih? / Atlasian itu bitbucket ya? / Dia ada bitbucket. / Yes, coba cari aja.
35:27Google nggak bikin ya? / Iya ya.
35:32Npm dan npm.js itu adalah dua hal yang... / Kalau Google, gue tahu adanya docker registry dia bisa bikin pakai Google Cloud.
35:40Docker registry, Google Cloud, ya.
35:45Ya itu sama juga ya, dengan docker juga sama tuh ya, registry, package registry gitu ya.
35:52Oke, oke. Nah, terus kita bahas apa lagi?
36:00Apa lagi ya? / Terakhir nih yang baru tuh. / Oh iya, yang baru ya, yang baru.
36:06Nah, kan yang lagi hype, yang lagi heboh kan kemarin.
36:11Kalau kita install Node.js, secara otomatis kita install npm dan nps.
36:18Yang menariknya, boon.js yang baru itu ternyata bisa juga punya package manager.
36:25Jadi kalau dia nggak perlu pakai npm, dia langsung pakai boon add gitu ya, atau boon install gitu ya? / Boon install.
36:32Dan itu udah include ya? / Udah include ya. / Sebelum kita masuk ke boon,
36:37kan hype-nya itu kan lagi, boon itu cepat. Boon itu gimana? Boon itu lebih cepat dan segala macem.
36:43Jadi kita demo yuk, tes aja di project beneran gitu, project open source-nya.
36:51Sebelum kita bahas tentang boon lebih cepat. Jadi hype-nya boon itu kan lebih cepat katanya ya.
36:56Kita tes, kita tes.
36:58Buat teman-teman yang belum tahu, boon.js itu adalah alternatif run time.
37:06Alternatif dari setara Node. / Javascript.
37:10Alternatif dari Node.js, tapi bedanya kalau Node.js dan Deno itu menggunakan V8-nya Google Chrome,
37:20mesin engine Javascript-nya Google Chrome yang namanya V8.
37:24Kalau si boon.js menggunakan Javascript Core yang digunakan di Safari dan WebKit.
37:31Kalau buat teman-teman yang bingung kenapa ada apa itu Javascript runtime V8, Javascript Core,
37:37kita kayaknya pernah punya episode Javascript runtime. / Sudah bahas.
37:41Cukup lengkap ya bahas tentang Javascript engine. / Terus macemnya lupa punya episode dulu adalah.
37:47Kita bahas tentang Gecko, kita bahas tentang CSS engine juga banyak di episode itu.
37:54Cari aja nanti di sini. Oh enggak ada ya? Di sini, di mana?
37:57Kayaknya kita perlu melanjutkan itunya kita, projectnya untuk seluruh... / Gallery.
38:06Gallery-nya, terus dibikin... / Betul. / Nanti kita harus lanjut sudah ngomongin itu deh.
38:11Sambil menunggu Ivan siap-siap, kita lihat ini dulu, boon.sh alamatnya.
38:19Nah di sini teman-teman bisa lihat ya, perbedaan itu jauh sekali.
38:23Kita enggak bisa menelan mentah-mentah si benchmark sih ya, harus coba sendiri.
38:28Ya namanya marketing. / Lumayan. / Iya.
38:31Kalau pakai database tuh. / Pasti lebih cepat.
38:34Mungkin dia tulis di sini dia paling lag kan.
38:37Nggak lebih lambat, nggak mungkin. Iya sama ini, kadang kan 100-200 atau 300% lebih cepat.
38:45Tapi lebih cepatnya itu misalnya 100 millisecond dibanding 300 millisecond.
38:50Yang mana buat kita tahu project pada umumnya ya.
38:54Maksudnya kecuali kita punya project yang ekstrim, yang berat banget, kita harus LLM atau apalah.
39:00Tapi kalau kita project regular, kayaknya 100 millisecond sama 300 millisecond,
39:04kaya practically nggak ada bedanya.
39:07Tapi ya menarik sih, minimal ada alternatif dan menariknya pakai engine yang selain V8 jadi nggak monopoli lah.
39:15Bagus kan itu karena boon, ngedorong ekosistem juga. / Betul.
39:19Yang menariknya lagi, aplikasi teman-teman yang sudah di-develop dengan menggunakan JavaScript dan OJS,
39:27kompatibel dengan Boon dan juga dengan OJS. / Terus jalan aja, sama.
39:30Kalau nggak kompatibel, nggak ada yang mau pakai. / Betul.
39:35Saya belum ngecek ya, kalau Boon ini kan dia pakai package management sendiri.
39:42Gimana dengan Deno? Deno kalau nggak salah kita bisa mendefinisikan URL library kita di import kita kan.
39:51Itu yang membedakan Deno dengan NPM juga kan.
39:55Kalau NPM kan Import React From React kan. Kalau Deno itu kan ada Import React From @reactjs.com/blablabla gitu lah.
40:06Kalau nggak salah. Tolong dikoreksi kalau salah ya.
40:10Mereka tuh pakai package managernya apa ya? NPM juga apa? Kompatibel dengan NPM kali ya?
40:17Oh pakai URL mah. / Pakai URL kan, bener kan? / Iya.
40:23Jadi mereka nggak pakai package manager gitu?
40:26Ya mungkin mereka internally kan pasti harus ada suatu bentuk management kan.
40:34Harus ada di-store minimal itu di-store di mana dan ada listnya packagenya apa, versinya berapa.
40:41Itu berarti suatu jenis, suatu bentuk package management.
40:46Ini contohnya nih. Export blablabla URL. Nah yang menariknya dengan pendekatan seperti ini kita bisa punya registri sendiri.
40:56Yang private mungkin. Jadi nggak perlu NPM JS gitu kan. Kalau kita mau taro di server kita ya taro aja udah gitu.
41:05Itu yang menariknya. / Oke. Udah. / Oke. Siap-siap?
41:09Siap-siap. Siap-siap. / Asik. Demo demo. / Demo demo. Bukan deno ya.
41:17Demo deno. / Oke. / Demo deno. / Bun bun.
41:22Catatan seorang demonstran. Demonstrancode. / Demonstrancode.
41:29Oke. Application entire screen aja gampang karena harus semua. / Oke.
41:39Mau nggak? / Kesini dulu biar gampang.
41:42Nah. Oops. Salah. / Wiss. / Nah. / Dia habis laporan nih.
41:48Iya. Oke. Sekarang ini projeknya ya. WP paski yang saya buat untuk menambahkan paski fitur ke WordPress.
42:00Di paski ini. / Ini plugin ya. Plugin WordPress ya. / Plugin. Plugin WordPress ya.
42:04Dan saya pakai dev dependency. Dan dependency ini ya. Di paskinya.
42:10Oke. Kita lihat dulu dari sisi. / Eh sebentar. Tunggu. Kita belum bahas nih. Dependency sama dev dependency.
42:17Sekalian aja kita bahas. / Ya. / Apa bedanya? / Sekilas aja. Nanti kalau yang di tell kayaknya episode itu sendiri.
42:24Ini di package.jsonnya saya. Kalau yang dependency itu adalah dependency yang akan dipakai di production atau di live.
42:34Akan di load. / Akan di jalankan pas orang lain, aplikasi lainnya yang pakai, yang install aplikasi kita ngejalanin.
42:42Si dependency itu harus ada ya. Karena bakal dipakai.
42:47Sedangkan dev dependency itu development dependency yang hanya dipakai saat kita nge-develop.
42:53Jadi saat kita melakukan transpile, linter yang episode lalu yang nge-linter. Ini ada ISLint, ada pretier.
43:01Itu kan nggak perlu. Ada feed. / Termasuk juga TypeScript kan. TypeScript kan pas dependency kan nggak perlu kan.
43:08Karena itu dalam JavaScript kan. / Ya dev dependency. / Ya lagi kan kan udah di compile juga pasti di distribute.
43:15Bisa feed, bisa webpack, bisa roll up. Itu semua dev dependency.
43:20Sedangkan kalau misalnya teman-teman pakai loadas yang akan dipakai di production atau di load di client side itu perlu di dependencies.
43:30Berarti analoginya kalau beli makanan, kita beli nasi pecelele dibungkus. Pas kita bawa bungkus kan.
43:39Itu harus ada kertasnya, harus ada nasinya, harus ada sambel, ada karet segala macam.
43:46Tapi kan cobeknya yang buat ngulek sambel itu kan cuma buat proses membuatkan makanannya.
43:52Tapi kan nggak dibawa sama kita pas beli makanan. / Kita nggak perlu bawa pulang cobeknya ya.
43:57Betul banget. / Iya jadi lapar.
44:02Nah saya sudah supaya sah saya hapus dulu note modules ya. Clean ya nggak ada note modules ya.
44:14Yang pertama kita pakai npm install.
44:21Oke note nya saya itu versi 16, terus npm nya versi 8.
44:29Saya masih pakai 16 ya teman-teman karena kebutuhan project.
44:32Oke npm install. Eh salah saya time ya, saya time.
44:37Ditunggung waktunya ya berapa lama ya? / Iya.
44:44Ini kayak dipercepat gitu ya, kayak 2x. / Oke, 8 detik.
44:518 detik, kita hapus. / Hapus lagi.
44:55Kita hapus, sah ya, nggak ada lagi, sudah. / Sekarang pakai boon.
45:00Boon, install. Oke boon, lanjut.
45:05Siap boon. / Ses. Berapa? / 0,02.
45:09Cepet banget sih asli. Sampai nggak ada loader, nggak ada apa sih sambil ngomong langsung ngobrol.
45:16Gila cepet banget. / Dua-duanya npm saya sudah punya cache, boon saya juga sudah punya cache.
45:23Jadi bukan download lagi. Dua-duanya sudah punya cache.
45:27Coba lame rave lagi, note module nya di hapus lagi.
45:30Oke. / Terus npm install lagi.
45:33Ini nggak dari cache ya? / Enggak.
45:37Oke. / Oh wow.
45:41Cepet sekali. Jauh. Jauh sekali bedanya.
45:45Sudah kelihatan ya? / Kelihatan ya? / Biasa.
45:48Sah, sah ya, sah. Oke. Sekarang Bill.
45:52Saya ada Bill. Bill nya jelasin sedikit biar temen-temen tahu.
45:56Jalannya npm run clean dan feed Bill.
46:00Run clean nya itu cuma bersih aset direktur saya di hapus.
46:06Mnlf doang. / Dibuild lagi.
46:09Dan feed saya itu gini doang, config nya.
46:13Ambil config bla bla bla, roll up.
46:16Ada 2 endpoint, user profile sama login js.
46:20That's it. Dan ada external global.
46:22External global itu dari WordPress global yang kita cerita kemarin ya.
46:26Jadi supaya nggak perlu di-compile.
46:29WordPress global nya nggak perlu di-compile.
46:31Oke. That's it. Simple.
46:33Oke, sekarang. / Kita coba pakai, tadi kita install pakai npm ya.
46:38Time, npm, run, build.
46:41Oke. Gede gede gede gede gede gede gede gede.
46:451,6, 1.
46:47Lumayan, lumayan. / Second. Ini, ini. / Nggak lama-lama.
46:50Oke. / Oke. / Kita coba pakai boon.
46:53Npm, salah.
46:55Time, boon, run, build.
46:59Dia tetap bisa sama mengikuti package.json script.
47:03Oke. / Si boon. / Nggak perlu diubah apa-apa ya.
47:05Nggak perlu. / Tanpa ada perubahan sama sekali ya. / 1,97.
47:08Wow. / Lebih cepat ya.
47:11Jauh ya. / Oke, balik lagi ke npm.
47:14Oke, 1,56.
47:17Kita buat 2 kali deh biar kerasa.
47:20Biar nggak ada sulap, nggak ada sihirnya gitu ya.
47:23Tetap terasa ya. / Jauh ya, jauh ya.
47:26Hampir 50% kepotong ya.
47:29Ini kan proyeknya simple ya.
47:31Kalau misalnya kalau sudah sampai gede banget, itu pasti lebih kerasa lagi sebenarnya.
47:36Karena apalagi kalau kita sudah ngomongnya sudah... / Makin banyak nih pendensi.
47:40Multiple endpoint, ya.
47:43Multiple entry, multiple entries. Itu banyak banget kan, multiple entries.
47:46Nah, kalau sudah multiple entries. / Apa target build-nya?
47:49Ini aja saya sudah pakai feed.
47:51Saya nggak tahu kalau misalnya pakai webpack seperti apa.
47:55Proyek yang pakai webpack saya rata-rata internal, jadi nggak bisa saya show di rekaman.
48:01Jadi...
48:05Rekap untuk installnya sendiri,
48:09selisihnya jauh banget.
48:117 detik dan 1 detik.
48:14Untuk build time?
48:17Ini kan npm install.
48:19Lebih cepat, tapi nggak se-signifikan itu.
48:23Kalau untuk build, ya lebih cepat.
48:26Installnya jauh lebih cepat.
48:29Sedangkan build-nya 50% lebih cepat.
48:33Nggak terlalu signifikan.
48:36Oke. / Nah, tanya kalau dari segi isi,
48:41struktur-struktur isi sama ukuran modus sama nggak?
48:45Antara pakai npm sama pakai boon?
48:47Oh iya, benar. / Isi apa nih?
48:51Jumlah ukuran node modules-nya.
48:56Apakah ada yang di simling atau semacamnya nggak?
49:00Itu sama persis. / Gimana cara ngeceknya?
49:04Bukan node modules-nya.
49:07Kalau node modules-nya sama...
49:11Kalau dilihat sekilas mungkin sama ya?
49:15Di hitung jumlah folder-nya bisa nggak dari node modules?
49:20Atau pakai CLI?
49:23Wartcount?
49:25Ah, DU aja. / Coba ya.
49:28Itu pakai Wartcount, tanya aja sama Warp AI.
49:32219 MB, supaya kita hapus dulu ya.
49:36Terus ini npm apa boon?
49:40Itu tadi npm, yang terakhir itu npm.
49:44Sekarang kita pakai boon, install.
49:470.22
49:52Lebih kecil. / Lebih kecil?
49:56Berarti ada... / Ada sesuatu yang dioptimize.
50:01Ada yang dioptimize. / Ada yang di simling atau di harcling atau apa?
50:06Kita hapus ya. / Npm install.
50:09Terus kita coba pakai npm install.
50:17Ya, 50 MB. / Iya, sama.
50:22Maksudnya konsisten kayak sebelumnya.
50:25Dan boon itu pakai ini ya.
50:27Saya lihat boon itu dia ngebikin lock-nya sendiri.
50:30Iya, ada lock-nya sendiri.
50:33Dan nggak bisa binary lagi.
50:35Binary ya? Bukan JSON ya?
50:38Iya, padahal semua kalau npm, yang npm semua kan JSON.
50:44Iya, binary lagi.
50:48Menarik ya? / Menarik sekali ya.
50:52Cepat-cepat. / Coba iseng ad.
50:55Kita konten pakai yarn deh. / React.
50:58Ada nggak sih? / Yarn-yarn.
51:00Nggak punya. Oh punya, udah nggak pakai. / Udah punya.
51:04Coba time-time. / Gimana cara update-nya? Gue lupa.
51:07Yarn install.
51:10Yarn install -g yarn. / Ada, yarn.
51:16Yarn versi yarn terbaru berapa lihat dulu? Jangan-jangan emang udah baru itu.
51:20Coba lihatin dulu.
51:22Yarn itu versi berapa sekarang?
51:24Karena yarn saya udah lama nih, nggak pakai.
51:28Release, versi 3, 363.
51:31Udah lama sekali itu. / Saya satu berapa.
51:34Yarn self-upgrade. / Yarn self-upgrade, ada ya.
51:38Yarn install -g. / Tanya aja sih ini.
51:42AI. / Update. / Iya work kan, pakai work AI kan.
51:46Yarn install. Update yarn.
51:49Yarn.
51:52Ya, update yarn.
51:55Pakai NPM ternyata.
51:57NPM install, -g. / Iya.
52:00Yarn, memang begitu kan? / Iya. / Duh, nggak bisa ke-copy.
52:04Bisa langsung insert ke... / Iya, itu bisa.
52:08Ada chat GPT-nya. / Udah pakai work itu kayaknya.
52:12Kalau misalnya tiba-tiba pakai CLI biasa lagi jadi beku gitu deh.
52:16Nggak bisa. / Waktu itu installernya dimana?
52:20Coba, where is... eh, where ya?
52:24Where is yarn? / Di node.
52:28Di NPM ya? / Iya, tapi di NPM...
52:32Oh, NPM? / Coba deh. / Gak, gue pake ini soalnya.
52:36Pake NPM kan. / Oh, yang 18. Itu 16 yarnnya.
52:40Iya. / Sama.
52:44Gak apa-apa sih, pakai yarn aja. Coba iseng bandingin.
52:48Min-g, yarn.
52:50Nggak bisa. NPM, NPM. / Eh, salah ya.
53:00Oh, mungkin karena ZSH.
53:04Karena ZSH dia nge-catch.
53:08Oh, harus di restart tuh ya? / Nggak sih, nggak.
53:12Ya udah lah, coba aja lah.
53:16Time, yarn install.
53:20Time yarn install. / Enak ya kalau punya project.
53:24Time-time. / Lupa sendiri. / Bisa buat.
53:28Playground. / Playground.
53:32Karena yarn gue belum pernah punya ini nih.
53:36Ya, jadi semua ke-download ya. / Nanti kita coba apus dulu.
53:40Coba sekali lagi di-abuse. / Biasa.
53:44Kalau ini kan tergantung internet masing-masing, jadi nggak...
53:48Afdo. / Nggak valid. / Iya. / Nggak Apple to Apple.
53:58Tuh, ini package manager install semua dependensinya nih.
54:04Kemana-mana nih.
54:06Gue nggak tahu nih apa aja isinya.
54:08Ist number.
54:14Archiver.
54:16Anda lo yang bikin ist number gitu ya.
54:18Tapi dipake juga, padahal tinggal ist number doang.
54:22Ada yang pake.
54:24Tapi sampai jadi ada package bercandalan tau nggak sih yang ada is 13.
54:28Ada. / Nge-check apakah yang di-pass adalah angka dan angkanya 13.
54:34Terus jadi aneh-aneh gitu, itu kayaknya buat orang belajar full request gitu.
54:42Is 13, is 14.
54:46Yang lucu, sambil menunggu ya, yang lucu NPM itu kalau di kiri atas itu
54:50selalu ada kepanjangannya dan kepanjangannya itu beda-beda.
54:53Kepanjangannya yang random work gitu kan. / Terus nanti kalau kita refresh lagi,
54:57ada nanti lagi Narnia Produce Magic. / Narnia Produce Magic.
55:03Ini dari mana ya dia dapetin?
55:05Ninja Power Manifesto.
55:07Oke, banyak ya jadi ini.
55:09Udah selesai? Siap.
55:11Eh, salah. Sorry, sorry, sorry.
55:13Dah. / Dah.
55:15Lebih cepat.
55:19Lebih cepat dari NPM. / Downloadnya lebih cepat, tapi selesainya hampir 7.
55:25Lebih cepat dari NPM. / Lebih cepat dari NPM.
55:28Tapi, tetap. / Nggak terlalu signifikan ya NPM sama.
55:32Mungkin ini versinya juga udah. / Lebih cepat dari NPM.
55:35Ya. Versinya juga mungkin. / Boon nggak sempelahkan.
55:38Boon. / Time, time, time.
55:41Ces. / Wow. / Gila, gila, gila.
55:47Eh, coba. Remove lagi, terus install yarn lagi, lihat size-nya berapa.
55:52Oh iya. / Oh iya, tadi kita ngeliat ya. / Tapi apa tadi?
55:56DU.
55:59Cross Amp.
56:04DU.
56:06Sama. Kayak si Boon. / Sama seperti Boon ya.
56:10Boon 172 tadi. / Iya.
56:12Jadi dia pakai algoritma yang mirip ya.
56:16Iya.
56:18Alright. / Dah terjawab sudah.
56:20So far untuk project WP paski, Boon lebih cepat.
56:25Maka gue pindah ke Boon untuk paski ini.
56:28Berani nggak pakai di production? Untuk Boon? / Oke.
56:31Oke. Langsung ya. / Tapi kalau, apa? / Udah versi satu lagi ya.
56:35Kalau untuk plugin ini gue nggak perlu. / Oh, ini kan open source ya, bebas ya.
56:39Maksudnya untuk project client gitu.
56:42Ini kan ujungnya jadi build kan.
56:44Oh iya, jadi build. / Kalau di build sih mau pakai suaranya aman ya.
56:48Kecuali kalau server ya, express gitu, back-end ya. / Itu beda cerita.
56:54Atau kalau misalnya ada setting khusus kayak ada monorepo atau apalah yang...
56:59Apa sih, ada caranya sendiri ngecek dependensi lokal atau apa, nah itu males sih itu.
57:05Gue langsung add commit sekarang, boon log B. Dan selesai.
57:10Mantap.
57:11Nah, tadi kan saya sempat nanya tuh di Deno gimana sudah terjawab, ada di dokumentasi.
57:16Mereka nggak ada konsep package manager, karena semuanya berdasarkan URL.
57:22Jadi berarti setiap jalan itu manggil dari URL-nya sendiri ya?
57:29Kayaknya disimpan juga sih, di caged juga sih, kayaknya di caged juga sih. / Harus ada cara dia nyimpen kan.
57:35Sebenarnya lokal itu kan intinya kayak gitu kan? / Iya.
57:40Capek juga kalau setiap kali ngejalanin manggil tuh URL aslinya.
57:45Iya, jadi misalkan kita import bla bla bla from bla bla bla, itu pada saat pertama mungkin dia install dulu.
57:52Saat kedua dia pakai yang sudah ada, gitu lah kira-kira. / Iya tinggal di-compare aja kan? / Iya, betul.
57:58Pada waktu dia dipanggil, itu versi berapa? Kalau misalnya besok dipanggil lagi, ya udah ambil dari situ.
58:06Sekarang bikin command alias npm jadi boon.
58:12Kalau kita type-nya npm yang jalan boon. / Iya.
58:17Dulu saya melakukan itu tapi dengan tnpm. / Tnpm. / Yang sering salah kan?
58:23Betul, cuma kalau misalkan sering demo atau ngajar gitu ya, banyak yang terdistraksi karena "loh kok npm-nya beda, progress-nya beda kan?"
58:35Jadi pasti pada "ngah, kok beda, gimana caranya?" jadi malah terdistraksi. Jadi akhirnya nggak jadi alias.
58:42Jadi kalau misalkan lagi demo ya tetap pakai npm, tapi kalau lagi sendiri ya udah, baru aliasnya nggak dimasukin ke konfigurasi jadi manual aja.
58:53Alright, ada lagi yang mau kita bahas di package manager? / Sama teman pada pakai apa?
59:02Coba tuh si command pakai apa, yang paling disukain apa, yang paling dihindarin apa, terus apa ya? / Curhatnya apa, pakai apa?
59:14Kalau gue curhat pnpm nih, kan nyoba turbo repo ya? Jadi combine antara pnpm, turbo repo, ya maksudnya ini udah beda konsep lagi ya.
59:27Bukan perkara strictly karena package manager-nya apa, tapi turbo repo kan struktur kayak mono repo, cuma mereka punya apa, convention sendiri.
59:37Itu cepet banget. Tapi kalau buat deploy, terutama kalau pakai semacam Prisma atau apapun itu yang ada build-nya itu,
59:48sekarang lupa dan agak nyesel juga kenapa dulu pas ngalamin masalah itu nggak nulis artikel atau apalah, sekarang udah lupa.
59:56Intinya kalau misalnya setting mono repo, entah pakai turbo repo atau semacamnya, pakai pnpm itu kadang-kadang bakal ada quote-nya
1:00:05yang kita harus di .file atau di npmrc harus ngasih sesuatu lah, pokoknya harus ada yang ditambahin.
1:00:12Cuma karena sekarang lupa apa, nanti deh gue tambahin di komen. / Siap-siap.
1:00:18Ya pokoknya package manager itu bisa punya behavior yang karena kan dia memanggil dependency, terutama kalau turbo repo kan
1:00:26masing-masing ada node modules-nya tuh, dan belum lagi ada kayak simplink, ada hardlink.
1:00:31Nah itu tuh siap-siap aja kalau struktur project-nya kompleks kayak gitu, bisa ada behavior yang mau nya diluar ekspektasi kita.
1:00:40Yang unik-unik, yang aneh-aneh.
1:00:42Terutama kalau paken makin aneh package managernya, makin besar kan sekitar ketemu hal-hal aneh.
1:00:48Kalau project kita strukturnya rumit, tapi kalau tadi kayak yang di demo-in Irfan itu, ya udah satu repo,
1:00:54tapi satu doang package JSON dan node modules-nya ngebuild, ya udah itu mah apa.
1:00:59Ya, oke kalau begitu, kalau tidak ada yang mau dibahas lagi, dan kalau temen-temen tertarik, kita mau bahas tentang pun.js,
1:01:08boleh langsung kesana.in/ngobrolinweb, kasih tau mau dong bahas tentang bun.
1:01:17Atau kalau temen-temen ada yang di kantornya sudah pakai bun di production,
1:01:22mau dong kita undang kesini buat kita tanya-tanya, karena kita belum, kita nyoba, tapi belum pernah sampai ke production kan.
1:01:29Ya dan emang kalau di tempat kerja, pantang lah, tiba-tiba ganti package manager. Maksudnya itu bukan buat apa ya.
1:01:38Bukan buat apa, enggak ada impact-nya.
1:01:42Sedikit cerita juga kalau di tempat saya kan kliennya mostly enterprise.
1:01:49Jadi kalau misalnya untuk pindah apa namanya, pindah artis itu, pindah teknologi, itu harus approval dulu.
1:01:58Ada paperwork.
1:02:03Alasannya kenapa harus POC dulu, banyak ya perjalanannya.
1:02:09Jadi saya harus presentasi dulu, ngobrol lagi, dan dari sisi internal sendiri saya harus ngomong dulu.
1:02:16Kalau leadershipnya setuju atau directornya setuju, oke baru dibawa ke klien. Itu pun harus berjenjang.
1:02:23Kalau mau cepat tipsnya kalau mau cepat, kalau pakai bun bisa hemat, biaya, kita biayanya bisa lebih murah 50%.
1:02:32Wah langsung pasti approve.
1:02:35Iya kan harus ada impact-nya ya.
1:02:38Biasa server-nya.
1:02:39Karena gini juga Mas Riza sama Mbak Eka itu, kalau misalnya pindah asetektur, itu artinya banyak pihak yang akan dihubungi.
1:02:46Karena gini, dari sisi tim security, mereka harus di update kalau kita pakai misalnya bun versi sekian dan sekian.
1:02:55Jadi mereka harus tracking vulnerability.
1:02:59Jadi mereka punya proses namanya security vulnerability test, scan, mereka harus update.
1:03:06Jadi mereka tahu kita punya aplikasi kita pakai versi apa aja, dan semua yang versi-versi itu harus kita lapor.
1:03:13Nanti mereka dapat selalu up to date dengan vulnerability.
1:03:21Jadi mereka harus kasih tahu kita kalau misalnya ada tiba-tiba ternyata paket kita punya vulnerability masalahnya,
1:03:27kita harus segera dapat update dan itu langsung tiketnya bisa pinol.
1:03:31Ada masalah vulnerability, tolong segera update.
1:03:34Apalagi bun ini baru launching kayaknya kalau untuk interface kayaknya ntar dulu kali ya, kecuali untuk proyek-proyek sendiri, open source dan lain-lain ya.
1:03:44Betul.
1:03:45Belum terbukti juga.
1:03:46Kalau tempat kerjaku sih nggak se-strict itu ya, cuma emang ada kesepakatan kalau soal infra,
1:03:54ini kan sebenarnya termasuk infrastruktur juga ya, package manager punya.
1:03:58Kalau belum fatal, kalau perkara ada dependency yang beneran updated atau security,
1:04:06ya itu jelas misalnya itu prioritas.
1:04:08Tapi di luar itu kalau cuma buat nyoba-nyoba package manager baru,
1:04:12itu emang kita sepakat minimalisir update lah.
1:04:17Soalnya remote juga ya kerja remote, ada kantornya, masing-masing punya device sendiri yang spesifikasinya nggak streamline.
1:04:26Nah kan jangan-jangan bisa aja ada kemungkinan kalau ganti boon tiba-tiba di laptopnya anggota tim lain,
1:04:32atau di orang QA-nya yang ngetesting, boonnya nggak jalan.
1:04:35Nah kan harus troubleshooting tuh.
1:04:37Misalnya ada install-nya di mana ada yang pakai homebrew lah, ada yang pakai globalnya nggak muncul,
1:04:44itu mesti ada kemungkinan kalau ngabisin waktu dan ternyata untuk troubleshooting kayak gitu.
1:04:50Jadi kayak di Agus Makatan, kalau yang begitu-begitu jangan diubah lah. Jadi sampai sekarang masih pakai NPM yang standar,
1:04:58dan semua mesin, semua orang pasti ada kan.
1:05:02Iya betul.
1:05:03Kalau kamu mau pergi cepat, bersama startup atau open source project.
1:05:08Kalau kamu mau pergi jauh, buat project enterprise, tapi slow.
1:05:14Boring teknologi, itu ada masaknya sendiri.
1:05:19Tapi stable.
1:05:22Iya, nggak pusing.
1:05:24Oh iya, baru ingat gara-gara tadi Eka ngomong, si boon ini belum support native Windows ternyata.
1:05:33Baru support Mac OS, Linux, dan Windows WSL.
1:05:36Windows executable-nya belum.
1:05:39Jadi kalau misalkan ada tim QA yang menggunakan Microsoft Windows sebagai OS di laptop atau di komputer,
1:05:45dia harus jalanin.
1:05:50Karena mungkin webkitnya...
1:05:55Nggak bisa jalanin executable-nya doang kan?
1:05:59Iya, betul.
1:06:02Itu contoh aja sih. Maksudnya belum di support semua platform.
1:06:07Jadi kalau hal-hal teknologi-teknologi baru itu yang banyak ya. Bukan hanya, "Wah ini lebih cepat."
1:06:15Terus juga begitu lebih cepat, udah kita kayak tutup mata dengan fitur yang lain, kita langsung gelak mata, langsung install gitu.
1:06:21Nggak langsung pakai, langsung implement, nggak gitu juga.
1:06:24Kan namanya hype driven development.
1:06:27Hype driven development sama link-in driven development ya.
1:06:30Biar nanti di CV kita di link-in itu ada Boon.js.
1:06:37Boon.js developer.
1:06:39Berpengalaman 3 tahun menggunakan Boon.js, padahal Boon.js baru 1 tahun.
1:06:44Loh, Eka kemana? Hilang.
1:06:47Wah dia belum bayar billing kayaknya ini.
1:06:52Dari warnet.
1:06:55Di install ini Boon.js terus mati. Jangan-jangan mati listrik.
1:07:00Ya sudah kalau gitu berhubung Eka-nya juga sudah menghilang.
1:07:04Mudah-mudahan ada technical problem kali ya.
1:07:09Mudah-mudahan minggu depan kita ketemu lagi di jam yang sama, di hari yang sama, selasa malam, jam 8 malam.
1:07:16Dan Eka-nya muncul lagi.
1:07:20Loh, tapi wah ini kayaknya koneksi internet ya.
1:07:23Kira-kira baru habis install Boon.js tiba-tiba menghilang.
1:07:29Kita sudah pamit, kita pamit lagi sekali lagi.
1:07:35Sampai ketemu minggu depan, hari selasa, jam 8 malam, bye bye.
1:07:41Oh iya, perayan 1 tahun.
1:07:44Jadi jangan lupa.
1:07:47Kita potong kue.
1:07:50Potong kue ya.
1:07:54Sampai jumpa minggu depan, bye bye.
Suka episode ini?
Langganan untuk update episode terbaru setiap Selasa malam!
Episode Terkait
8 Okt 2024
Ngobrolin Deno - Ngobrolin WEB
Yuk mari kita diskusi dan ngobrol ngalor-ngidul tentang dunia web. Agar tetap up-to-date dengan teknologi web terkini. ...
18 Mar 2025
Ngobrolin Kata Sandi - Ngobrolin WEB
Yuk mari kita diskusi dan ngobrol ngalor-ngidul tentang dunia web. Agar tetap up-to-date dengan teknologi web terkini. ...
17 Jan 2024
Ngobrolin Form - Ngobrolin WEB
Yuk mari kita diskusi dan ngobrol ngalor-ngidul tentang dunia web. Agar tetap up-to-date dengan teknologi web terkini. ...