Rumah > hujung hadapan web > tutorial js > Reka dan Bina Perpustakaan JavaScript Anda Sendiri: Petua & Trik

Reka dan Bina Perpustakaan JavaScript Anda Sendiri: Petua & Trik

Jennifer Aniston
Lepaskan: 2025-02-18 08:24:13
asal
313 orang telah melayarinya

Bina dan siarkan perpustakaan JavaScript anda sendiri: Panduan terperinci

Design and Build Your Own JavaScript Library: Tips & Tricks

mata teras

  • Kosongkan matlamat: Sebelum anda mula membina perpustakaan, jelaskan masalah khusus yang ingin diselesaikan, tetap fokus dan pastikan kegunaannya.
  • Reka bentuk API yang berpusat pada pengguna: Reka bentuk perpustakaan anda dengan pusat pengguna akhir untuk menjadikannya mudah dan mudah digunakan, dengan itu meningkatkan penggunaan dan kepuasan pengguna.
  • fleksibiliti dan penyesuaian: Menyediakan pilihan penyesuaian melalui konfigurasi, kaedah awam, dan pengendalian acara untuk memenuhi keperluan pengguna yang berbeza. Ujian dan dokumentasi
  • : Gunakan rangka kerja seperti mocha atau melati untuk menjalankan ujian menyeluruh dan memastikan dokumentasi komprehensif disediakan untuk membantu memahami dan menggunakan.
  • Keserasian Loader Modul: Pastikan perpustakaan anda menyokong pelbagai pemuat modul dengan menggunakan definisi modul sejagat (UMD) atau kaedah yang serupa untuk memaksimumkan keserasian.
  • Versioning and Release: Kemas kini dengan versi semantik dan menerbitkan perpustakaan anda kepada pengurus pakej seperti NPM atau Bower untuk mencapai khalayak yang lebih luas.

Artikel ini dikaji semula oleh Adrian Sandu, Vildan Softic dan Dan Prince. Terima kasih kepada semua pengulas rakan sebaya untuk mendapatkan kandungan SitePoint dengan sebaik -baiknya!

Kami sering menggunakan perpustakaan. Perpustakaan adalah kod yang dibungkus yang boleh digunakan oleh pemaju dalam projek mereka, yang pasti menjimatkan beban kerja dan mengelakkan roda pendua. Mempunyai pakej yang boleh diguna semula (kedua-dua sumber terbuka atau sumber tertutup) adalah lebih baik daripada membina semula fungsi yang sama atau salinan-pasang secara manual dari projek masa lalu.

Tetapi selain kod yang dibungkus, apakah sebenarnya perpustakaan? Dengan beberapa pengecualian, perpustakaan harus selalu menjadi satu fail, atau beberapa fail yang terletak dalam satu folder. Kodnya harus dikekalkan secara berasingan dan tetap sama apabila ia dilaksanakan ke dalam projek. Perpustakaan harus membolehkan anda menetapkan konfigurasi dan/atau tingkah laku khusus projek. Fikirkannya sebagai peranti USB yang hanya membolehkan komunikasi melalui port USB. Sesetengah peranti, seperti tikus dan papan kekunci, membolehkan konfigurasi melalui antara muka yang disediakan oleh peranti.

Dalam artikel ini, saya akan menerangkan bagaimana perpustakaan dibina. Walaupun kebanyakan topik yang dilindungi sesuai untuk bahasa lain, jawatan ini memberi tumpuan kepada membina perpustakaan JavaScript.

Mengapa membina perpustakaan JavaScript anda sendiri?

Pertama sekali, perpustakaan membuat penggunaan semula kod sedia ada sangat mudah. Anda tidak perlu menggali projek lama dan menyalin beberapa fail, hanya membawa perpustakaan. Ini juga akan memisahkan aplikasi anda, menjadikan kod aplikasi asas lebih kecil dan lebih mudah untuk dikekalkan.

Design and Build Your Own JavaScript Library: Tips & Tricks

Perpustakaan Christ Church (Sumber)
Mana -mana kod yang membuat mencapai matlamat tertentu lebih mudah dan boleh digunakan semula, seperti abstraksi, adalah calon yang boleh dibungkus ke dalam perpustakaan. Contoh yang menarik adalah jQuery. Walaupun API JQuery adalah lebih daripada API DOM yang dipermudahkan, ia membuat banyak akal beberapa tahun yang lalu apabila operasi dom penyemak imbas agak sukar. Jika projek sumber terbuka menjadi popular dan semakin banyak pemaju menggunakannya, kemungkinan besar orang akan menyertai dan membantu projek dengan mengemukakan soalan atau menyumbang kepada asas kod. Sama ada cara, ia memberi manfaat kepada perpustakaan dan semua projek yang bergantung kepadanya.

Projek sumber terbuka yang popular juga boleh membawa peluang besar. Sebuah syarikat mungkin kagum dengan kualiti pekerjaan anda dan menawarkan pekerjaan kepada anda. Mungkin syarikat akan meminta bantuan untuk mengintegrasikan projek anda ke dalam permohonan mereka. Lagipun, tiada siapa yang tahu perpustakaan anda lebih baik daripada anda.

Bagi ramai orang, ia hanya hobi - menikmati proses menulis kod, membantu orang lain, dan belajar dan berkembang dalam proses. Anda boleh menolak had anda dan mencuba perkara baru.

Skop dan Sasaran

Sebelum menulis baris kod pertama, anda harus jelas tentang tujuan perpustakaan anda - anda perlu menetapkan matlamat. Dengan mereka, anda boleh memberi tumpuan kepada masalah yang ingin anda selesaikan dengan perpustakaan anda. Ingat, perpustakaan anda harus lebih mudah digunakan dan ingat daripada bentuk soalan asal. Semakin mudah API, semakin mudah bagi pengguna untuk belajar menggunakan perpustakaan anda. Quote Falsafah Unix:

hanya melakukan satu perkara dan lakukan dengan baik

Tanya diri anda: Apakah masalah yang diselesaikan oleh perpustakaan anda? Bagaimana anda akan menyelesaikannya? Adakah anda akan menulis semuanya sendiri atau bolehkah anda menggunakan perpustakaan orang lain?

Cuba buat peta jalan tanpa mengira saiz perpustakaan. Senaraikan semua ciri yang anda inginkan dan kemudian keluarkan ciri -ciri seberapa banyak yang anda boleh sehingga anda mempunyai perpustakaan kecil tetapi berfungsi sepenuhnya seperti produk yang paling kecil. Ini akan menjadi versi pertama anda. Dari sana, anda boleh membuat tonggak untuk setiap ciri baru. Pada asasnya, anda memecahkan projek ke dalam kepingan kecil, menjadikan setiap ciri lebih seperti pencapaian dan lebih menyeronokkan. Percayalah, ini akan membuatkan anda waras.

reka bentuk API

Saya secara peribadi benar -benar suka mengendalikan perpustakaan saya dari perspektif pengguna akhir. Anda boleh memanggilnya reka bentuk yang berpusatkan pengguna. Pada asasnya, anda mencipta ringkasan perpustakaan, dengan harapan dapat memikirkan lebih lanjut mengenainya dan menjadikannya lebih mudah bagi sesiapa yang memilih untuk menggunakannya. Pada masa yang sama, anda boleh mempertimbangkan aspek apa yang harus disesuaikan, yang akan dibincangkan kemudian dalam artikel ini.

Ujian kualiti API akhir adalah untuk makan makanan anjing anda sendiri dan menggunakan perpustakaan anda dalam projek anda sendiri. Cuba ganti kod aplikasi dengan perpustakaan anda dan lihat sama ada ia meliputi semua ciri yang anda mahukan. Cuba buat perpustakaan sebagai nipis mungkin sambil menjadikannya cukup fleksibel untuk menjadikannya sesuai untuk situasi yang melampau mereka serta penyesuaian (seperti yang diterangkan kemudian dalam artikel ini).

Berikut adalah apa pelaksanaan atau ringkasan perpustakaan rentetan ejen pengguna mungkin kelihatan seperti:

<code>// 以空的UserAgent字符串开始
var userAgent = new UserAgent;

// 创建并添加第一个产品:EvilCorpBrowser/1.2 (X11; Linux; en-us)
var application = new UserAgent.Product('EvilCorpBrowser', '1.2');
application.setComment('X11', 'Linux', 'en-us');
userAgent.addProduct(application);

// 创建并添加第二个产品:Blink/20420101
var engine = new UserAgent.Product('Blink', '20420101');
userAgent.addProduct(engine);

// EvilCorpBrowser/1.2 (X11; Linux; en-us) Blink/20420101
userAgent.toString();

// 对引擎产品进行更多更改
engine.setComment('Hello World');

// EvilCorpBrowser/1.2 (X11; Linux; en-us) Blink/20420101 (Hello World)
userAgent.toString();
</code>
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Bergantung pada kerumitan perpustakaan, anda juga mungkin perlu mempertimbangkan struktur. Menggunakan corak reka bentuk adalah cara terbaik untuk membina perpustakaan atau mengatasi masalah teknikal tertentu. Ia juga mengurangkan risiko refactoring kebanyakan kod apabila menambah ciri -ciri baru.

fleksibiliti dan penyesuaian

Apa yang menjadikan perpustakaan berkuasa adalah fleksibiliti, tetapi juga sukar untuk menarik garis antara apa yang anda boleh menyesuaikan dan apa yang anda tidak dapat. Contoh yang sempurna ialah Chart.js dan D3.Js. Kedua -duanya adalah perpustakaan yang sangat baik untuk menggambarkan data. Chart.js menjadikannya sangat mudah untuk membuat dan menubuhkan pelbagai jenis carta terbina dalam. Walau bagaimanapun, jika anda memerlukan lebih banyak kawalan ke atas grafik, anda perlu menggunakan d3.js. Terdapat beberapa cara untuk memberi kawalan pengguna: konfigurasi, mendedahkan kaedah awam, dan melalui panggilan balik dan acara.

Konfigurasi perpustakaan

biasanya dilakukan semasa permulaan, tetapi beberapa perpustakaan membolehkan anda mengubah suai pilihan pada masa runtime. Pilihan biasanya terhad kepada butiran, menukar pilihan ini tidak boleh melakukan apa -apa kecuali mengemas kini nilai -nilai ini untuk kegunaan kemudian.

Kaedah boleh didedahkan untuk berinteraksi dengan keadaan, seperti mengambil data dari keadaan, meletakkan data ke dalam keadaan (setter), dan melakukan operasi.
<code>// 在初始化时配置
var userAgent = new UserAgent({
  commentSeparator: ';'
});

// 使用公共方法进行运行时配置
userAgent.setOption('commentSeparator', '-');

// 使用公共属性进行运行时配置
userAgent.commentSeparator = '-';
</code>
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

panggil balik kadang -kadang diluluskan bersama dengan kaedah awam, biasanya menjalankan kod pengguna selepas tugas tak segerak.
<code>var userAgent = new UserAgent;

// 获取器,用于从所有产品中检索注释
userAgent.getComments();

// 用于打乱所有产品顺序的操作
userAgent.shuffleProducts();
</code>
Salin selepas log masuk
Salin selepas log masuk

Acara mempunyai potensi besar. Mereka sama dengan panggilan balik, kecuali penambahan pengendali acara tidak boleh mencetuskan tindakan. Peristiwa biasanya digunakan untuk menunjukkan (anda mungkin telah meneka) peristiwa! Sama seperti panggilan balik, anda boleh memberikan maklumat tambahan dan nilai pulangan yang boleh digunakan oleh perpustakaan.
<code>var userAgent = new UserAgent;

userAgent.doAsyncThing(function asyncThingDone() {
  // 异步操作完成后运行代码
});
</code>
Salin selepas log masuk

Dalam beberapa kes, anda mungkin mahu membenarkan pengguna melanjutkan perpustakaan anda. Untuk melakukan ini, anda boleh mendedahkan kaedah atau harta awam untuk pengguna mengisi, seperti modul sudut (angular.module ('mymodule')) dan jQuery's fn (jQuery.fn.myplugin), atau berbuat apa -apa, hanya berikan pengguna akses pengguna ke ruang nama perpustakaan anda:
<code>var userAgent = new UserAgent;

// 验证添加的产品
userAgent.on('product.add', function onProductAdd(e, product) {
  var shouldAddProduct = product.toString().length 
  // 告诉库添加或不添加产品
  return shouldAddProduct;
});
</code>
Salin selepas log masuk

Sekali lagi, ini membolehkan anda mengatasi kaedah.
<code>// AngryUserAgent 模块
// 可以访问UserAgent命名空间
(function AngryUserAgent(UserAgent) {

  // 创建新的方法 .toAngryString()
  UserAgent.prototype.toAngryString = function() {
    return this.toString().toUpperCase();
  };

})(UserAgent);

// 应用程序代码
var userAgent = new UserAgent;
// ...

// EVILCORPBROWSER/1.2 (X11; LINUX; EN-US) BLINK/20420101
userAgent.toAngryString();
</code>
Salin selepas log masuk

Dalam kes yang kedua, membolehkan pengguna mengakses ruang nama perpustakaan anda akan mengurangkan kawalan anda ke atas bagaimana sambungan/plugin ditakrifkan. Untuk memastikan bahawa lanjutan mengikuti konvensyen tertentu, anda boleh (dan harus) menulis dokumentasi.
<code>// AngryUserAgent 模块
(function AngryUserAgent(UserAgent) {

  // 存储旧的 .toString() 方法以供以后使用
  var _toString = UserAgent.prototype.toString;

  // 覆盖 .toString()
  UserAgent.prototype.toString = function() {
    return _toString.call(this).toUpperCase();
  };

})(UserAgent);

var userAgent = new UserAgent;
// ...

// EVILCORPBROWSER/1.2 (X11; LINUX; EN-US) BLINK/20420101
userAgent.toString();
</code>
Salin selepas log masuk

ujian

Menulis gambaran keseluruhan adalah permulaan yang baik untuk pembangunan yang didorong oleh ujian. Singkatnya, ini adalah standard untuk menulis borang ujian sebelum anda menulis perpustakaan sebenar. Jika ujian ini menyemak bahawa ciri bertindak seperti yang diharapkan dan anda menulis ujian ini sebelum menulis perpustakaan, strategi itu dipanggil pembangunan yang didorong oleh tingkah laku. Sama ada cara, jika ujian anda meliputi setiap ciri di perpustakaan dan kod anda melepasi semua ujian, anda boleh menganggap bahawa perpustakaan anda boleh berfungsi.

Jani Hartikainen menerangkan cara menulis ujian unit dalam "Menggunakan Mocha dan Chai untuk Unit Menguji JavaScript anda". Dalam "Ujian JavaScript dengan Jasmine, Travis, dan Karma", Tim Evko menunjukkan bagaimana untuk menubuhkan saluran paip ujian yang hebat dengan rangka kerja lain yang dipanggil Jasmine. Kedua -dua kerangka ujian ini sangat popular, tetapi terdapat banyak jenis kerangka lain.

Ringkasan yang saya buat sebelum ini dalam artikel ini telah mengulas mengenai output yang diharapkan. Di sinilah semua ujian bermula: bermula dengan jangkaan. Ujian Jasmine untuk perpustakaan saya adalah seperti berikut:

<code>// 以空的UserAgent字符串开始
var userAgent = new UserAgent;

// 创建并添加第一个产品:EvilCorpBrowser/1.2 (X11; Linux; en-us)
var application = new UserAgent.Product('EvilCorpBrowser', '1.2');
application.setComment('X11', 'Linux', 'en-us');
userAgent.addProduct(application);

// 创建并添加第二个产品:Blink/20420101
var engine = new UserAgent.Product('Blink', '20420101');
userAgent.addProduct(engine);

// EvilCorpBrowser/1.2 (X11; Linux; en-us) Blink/20420101
userAgent.toString();

// 对引擎产品进行更多更改
engine.setComment('Hello World');

// EvilCorpBrowser/1.2 (X11; Linux; en-us) Blink/20420101 (Hello World)
userAgent.toString();
</code>
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Sebaik sahaja anda berpuas hati dengan versi pertama reka bentuk API, sudah tiba masanya untuk mula memikirkan seni bina dan bagaimana perpustakaan anda akan digunakan.

keserasian loader modul

anda mungkin atau tidak boleh menggunakan pemuat modul. Walau bagaimanapun, pemaju yang memilih untuk melaksanakan perpustakaan anda boleh menggunakannya, jadi anda mahu perpustakaan anda bersesuaian dengan Loader Modul. Tetapi yang mana? Bagaimanakah anda memilih antara CommonJs, RequireJs, AMD dan pemuat modul lain?

Sebenarnya, anda tidak perlu memilih! Definisi Modul Universal (UMD) adalah satu lagi strategi yang direka untuk menyokong pelbagai pemuat modul. Anda boleh menemui versi coretan kod yang berbeza dalam talian, dan anda juga boleh mencari versi UMD yang berbeza di repositori UMD Github untuk menjadikan perpustakaan anda serasi dengan UMD. Mulakan perpustakaan anda dengan salah satu templat, atau tambahkan UMD dengan alat binaan kegemaran anda, dan anda tidak perlu bimbang tentang pemuat modul.

Jika anda ingin menggunakan sintaks import/eksport ES2015, saya sangat mengesyorkan menggunakan Babel untuk disusun ke ES5, digabungkan dengan plugin UMD Babel. Dengan cara ini, anda boleh menggunakan ES2015 dalam projek anda semasa masih menjana perpustakaan yang sesuai untuk semua orang.

Dokumen

Saya benar -benar memihak kepada dokumentasi menyeluruh semua projek, tetapi ini sering dianggap banyak kerja, ditangguhkan dan akhirnya dilupakan.

Maklumat Asas

Dokumentasi harus selalu bermula dengan maklumat asas, seperti nama projek dan perihalan. Ini akan membantu orang lain memahami fungsi perpustakaan anda dan sama ada ia berfungsi untuk mereka.

Anda boleh memberikan maklumat tambahan, seperti skop dan matlamat, untuk memaklumkan pengguna dengan lebih baik, serta peta jalan supaya mereka tahu apa yang akan berlaku pada masa akan datang atau bagaimana mereka dapat menyumbang.

API, Tutorial dan Contoh

Sudah tentu, anda perlu membiarkan pengguna mengetahui cara menggunakan perpustakaan anda. Ini bermula dengan dokumentasi API. Tutorial dan contoh adalah penambahan yang hebat, tetapi menulis ini boleh mengambil banyak kerja. Walau bagaimanapun, ini tidak berlaku dengan dokumentasi sebaris. Ini adalah komen yang boleh dihuraikan dan ditukar ke halaman dokumen menggunakan JSDOC.

Metaquest

Sesetengah pengguna mungkin mahu menukar perpustakaan anda. Dalam kebanyakan kes, ini akan menjadi sumbangan, tetapi sesetengah orang mungkin ingin membuat versi tersuai untuk kegunaan peribadi. Bagi pengguna ini, dokumen yang mengandungi metatasks berguna, seperti senarai arahan untuk perpustakaan bangunan, ujian menjalankan, menjana, menukar, atau memuat turun data, dll.

Sumbangan

Sumbangan sangat penting apabila anda membuka sumber perpustakaan anda. Untuk membimbing penyumbang, anda boleh menambah dokumentasi kepadanya, menerangkan langkah -langkah untuk menyumbang dan kriteria yang perlu dipenuhi. Ini akan memudahkan anda mengkaji semula dan menerima sumbangan dan memudahkan mereka menyumbang dengan betul.

had

Terakhir tetapi tidak kurang, sila sertakan lesen. Secara teknikal, jika anda memilih untuk tidak memasukkan lesen, ia masih berhak cipta, tetapi tidak semua orang tahu ini.

Saya dapati pilihanikence.com untuk menjadi sumber yang hebat untuk anda memilih lesen tanpa menjadi pakar undang -undang. Selepas memilih lesen, simpan teks dalam fail Lesen.TXT dalam direktori root projek.

pek dan tambahkan busur

versi adalah penting untuk perpustakaan yang baik. Jika anda memilih untuk membuat perubahan yang ketara, pengguna mungkin mahu terus menggunakan versi yang berfungsi untuk mereka.

Kriteria penamaan versi de facto semasa adalah kawalan versi semantik, atau Semver. Versi Semver terdiri daripada tiga nombor, masing -masing mewakili perubahan yang berbeza: versi utama, kecil, dan patch.

tambahkan versi/versi ke repositori git anda

Jika anda mempunyai repositori git, anda boleh menambah nombor versi ke repositori. Anda boleh memikirkannya sebagai gambar repositori. Kami menyebutnya label. Untuk membuat tag, buka terminal dan jenis:

<code>// 以空的UserAgent字符串开始
var userAgent = new UserAgent;

// 创建并添加第一个产品:EvilCorpBrowser/1.2 (X11; Linux; en-us)
var application = new UserAgent.Product('EvilCorpBrowser', '1.2');
application.setComment('X11', 'Linux', 'en-us');
userAgent.addProduct(application);

// 创建并添加第二个产品:Blink/20420101
var engine = new UserAgent.Product('Blink', '20420101');
userAgent.addProduct(engine);

// EvilCorpBrowser/1.2 (X11; Linux; en-us) Blink/20420101
userAgent.toString();

// 对引擎产品进行更多更改
engine.setComment('Hello World');

// EvilCorpBrowser/1.2 (X11; Linux; en-us) Blink/20420101 (Hello World)
userAgent.toString();
</code>
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Banyak perkhidmatan (seperti GitHub) akan memberikan gambaran keseluruhan semua versi dan pautan muat turun untuk setiap versi.

Terbitkan ke repositori awam

npm

Banyak bahasa pengaturcaraan datang dengan pengurus pakej, atau pengurus pakej pihak ketiga boleh digunakan. Ini membolehkan kita memperkenalkan perpustakaan khusus untuk bahasa -bahasa ini. Sebagai contoh, komposer PHP dan rubygem Ruby.

node.js (enjin JavaScript yang berdiri sendiri) dilengkapi dengan npm. Jika anda tidak biasa dengan NPM, kami mempunyai panduan pemula yang hebat.

Secara lalai, pakej NPM anda akan diterbitkan secara terbuka. Jangan risau! Anda juga boleh menerbitkan pakej peribadi, menyediakan pendaftaran peribadi, atau mengelakkan penerbitan sama sekali.

Untuk menerbitkan pakej anda, projek anda memerlukan fail pakej.json. Anda boleh melakukan ini secara manual atau menggunakan wizard interaktif. Untuk memulakan wizard, ketik:

Atribut versi

sepadan dengan tag git anda. Juga, pastikan anda mempunyai fail ReadMe.md. Sama seperti GitHub, NPM menggunakannya sebagai halaman yang menjadikan pakej anda.
<code>// 在初始化时配置
var userAgent = new UserAgent({
  commentSeparator: ';'
});

// 使用公共方法进行运行时配置
userAgent.setOption('commentSeparator', '-');

// 使用公共属性进行运行时配置
userAgent.commentSeparator = '-';
</code>
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Selepas

, anda boleh menerbitkan pakej anda dengan menaip arahan berikut:

itu sahaja! Anda telah menyiarkan pakej NPM anda.
<code>var userAgent = new UserAgent;

// 获取器,用于从所有产品中检索注释
userAgent.getComments();

// 用于打乱所有产品顺序的操作
userAgent.shuffleProducts();
</code>
Salin selepas log masuk
Salin selepas log masuk

Bower

Beberapa tahun yang lalu, pengurus pakej lain yang dipanggil Bower muncul. Walau bagaimanapun, pengurus pakej ini tidak direka untuk bahasa tertentu, tetapi untuk web platform tertentu. Anda boleh mencari semua sumber utama utama di sana. Ia hanya masuk akal untuk menerbitkan pakej anda di Bower jika perpustakaan anda serasi dengan penyemak imbas.

Jika anda tidak biasa dengan Bower, kami juga mempunyai panduan pemula.

Seperti NPM, anda juga boleh menyediakan repositori swasta. Anda juga boleh menghalangnya daripada menerbitkan sepenuhnya dalam Wizard.

Menariknya, sepanjang tahun atau dua tahun lalu, ramai orang nampaknya beralih ke NPM untuk sumber-sumber front-end. Walaupun pakej NPM terutamanya JavaScript, banyak pakej front-end juga dikeluarkan pada NPM. Sama ada cara, Bower masih sangat popular, jadi saya pasti mengesyorkan anda menyiarkan pakej anda kepada Bower juga.

Adakah saya menyebut bahawa Bower sebenarnya adalah modul NPM dan pada mulanya diilhamkan olehnya? Perintah sangat serupa. Untuk menjana fail Bower.json, taip:

<code>// 以空的UserAgent字符串开始
var userAgent = new UserAgent;

// 创建并添加第一个产品:EvilCorpBrowser/1.2 (X11; Linux; en-us)
var application = new UserAgent.Product('EvilCorpBrowser', '1.2');
application.setComment('X11', 'Linux', 'en-us');
userAgent.addProduct(application);

// 创建并添加第二个产品:Blink/20420101
var engine = new UserAgent.Product('Blink', '20420101');
userAgent.addProduct(engine);

// EvilCorpBrowser/1.2 (X11; Linux; en-us) Blink/20420101
userAgent.toString();

// 对引擎产品进行更多更改
engine.setComment('Hello World');

// EvilCorpBrowser/1.2 (X11; Linux; en-us) Blink/20420101 (Hello World)
userAgent.toString();
</code>
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Sama seperti NPM init, penjelasannya jelas. Akhirnya, siarkan pakej anda:

<code>// 在初始化时配置
var userAgent = new UserAgent({
  commentSeparator: ';'
});

// 使用公共方法进行运行时配置
userAgent.setOption('commentSeparator', '-');

// 使用公共属性进行运行时配置
userAgent.commentSeparator = '-';
</code>
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
itu sahaja, anda telah menyiarkan perpustakaan anda ke internet untuk semua orang menggunakan projek nod mereka dan/atau di web!

Kesimpulan

Produk teras adalah perpustakaan. Pastikan ia menyelesaikan masalah, mudah digunakan dan stabil, dan anda akan menjadikan pasukan anda atau banyak pemaju sangat gembira.

Banyak tugas yang saya nyatakan adalah mudah untuk mengautomasikan, seperti ujian berjalan, membuat tag, mengemas kini versi dalam pakej.json, dan menerbitkan semula pakej anda ke NPM dan Bower. Di sinilah anda masuk ke dalam bidang integrasi berterusan dan menggunakan alat seperti Travis CI atau Jenkins. Saya sebutkan tadi mengenai artikel Tim Evko juga menyentuh perkara ini.

Adakah anda membina dan menerbitkan perpustakaan? Sila kongsi di bahagian komen di bawah!

Soalan Lazim (Soalan Lazim) untuk Merancang dan Membina Perpustakaan JavaScript Anda Sendiri

Apakah faedah mewujudkan perpustakaan JavaScript saya sendiri?

Membuat perpustakaan JavaScript anda sendiri mempunyai banyak faedah. Pertama, ia membolehkan anda menggunakan semula kod dalam pelbagai projek, menjimatkan masa dan usaha dalam jangka masa panjang. Kedua, ia dapat membantu anda menyusun kod anda dengan cara yang lebih berstruktur dan boleh dibaca. Ini amat berguna apabila bekerja pada projek besar atau bekerja dengan pemaju lain. Akhirnya, mewujudkan perpustakaan anda sendiri boleh menjadi pengalaman pembelajaran yang hebat yang membantu anda memperdalam pemahaman anda tentang prinsip pembangunan JavaScript dan perisian.

Bagaimana saya mula membuat perpustakaan JavaScript?

Langkah pertama dalam mewujudkan perpustakaan JavaScript adalah untuk menentukan tujuannya. Apakah fungsi yang anda mahu perpustakaan anda berikan? Sebaik sahaja anda mempunyai pemahaman yang jelas tentang apa yang anda mahu perpustakaan anda lakukan, anda boleh mula menulis kod. Ini biasanya melibatkan menentukan satu siri fungsi yang menyediakan fungsi yang diperlukan. Fungsi -fungsi ini kemudiannya terdedah melalui API awam yang boleh digunakan oleh pemaju lain.

Bagaimana saya menguji perpustakaan JavaScript saya?

Ujian adalah bahagian penting dalam membangunkan perpustakaan JavaScript. Beberapa kerangka ujian JavaScript boleh didapati, seperti Jest, Mocha, dan Jasmine. Rangka kerja ini membolehkan anda menulis ujian unit untuk fungsi anda, memastikan ia berfungsi seperti yang diharapkan. Sebagai tambahan kepada ujian unit, anda juga mungkin perlu menulis ujian integrasi untuk memeriksa sama ada bahagian -bahagian perpustakaan yang berlainan berfungsi bersama -sama.

Bagaimana saya merakam perpustakaan JavaScript saya?

Dokumentasi yang baik adalah penting untuk mana -mana perpustakaan perisian. Ia membantu pemaju lain memahami cara menggunakan perpustakaan anda dan apa yang dilakukan setiap fungsi. Anda harus memasukkan penerangan terperinci setiap fungsi di perpustakaan, termasuk input, output, dan sebarang kesan sampingan. Anda juga boleh menggunakan alat seperti JSDOC untuk menjana dokumen secara automatik berdasarkan komen kod.

Bagaimana saya mengedarkan perpustakaan JavaScript saya?

Terdapat pelbagai cara untuk mengedarkan perpustakaan JavaScript. Cara yang sama adalah untuk menerbitkannya kepada pengurus pakej seperti NPM. Ini membolehkan pemaju lain dengan mudah memasang perpustakaan anda menggunakan arahan mudah. Anda juga boleh mengedarkan perpustakaan anda dengan menganjurkannya pada CDN (rangkaian pengedaran kandungan) atau menyediakan pautan muat turun di laman web anda.

bagaimana saya mengekalkan perpustakaan JavaScript saya?

Mengekalkan perpustakaan JavaScript termasuk menetapkan pepijat, menambah ciri -ciri baru, dan mengekalkan perpustakaan selaras dengan standard dan amalan JavaScript terkini. Adalah penting untuk menguji perpustakaan anda dengan kerap dan mendengar maklum balas pengguna. Anda juga boleh mempertimbangkan versi perpustakaan anda supaya pengguna boleh memilih untuk menggunakan versi stabil atau versi terkini dengan ciri -ciri baru.

Bagaimana saya memastikan perpustakaan JavaScript saya cekap?

Untuk memastikan perpustakaan JavaScript anda adalah cekap, anda harus memberi tumpuan kepada menulis ringkas dan jelas. Elakkan pengiraan dan peruntukan memori yang tidak perlu. Gunakan alat seperti Chrome Devtools untuk menganalisis perpustakaan anda dan mengenal pasti sebarang kesesakan prestasi. Anda juga boleh mempertimbangkan memampatkan perpustakaan anda untuk mengurangkan saiz failnya dan meningkatkan masa pemuatan.

bagaimana saya menjadikan perpustakaan JavaScript saya serasi dengan penyemak imbas yang berbeza?

Oleh kerana setiap pelayar menafsirkan JavaScript secara berbeza, memastikan keserasian penyemak imbas dapat menjadi cabaran. Anda boleh menggunakan alat seperti Babel untuk menukar kod anda menjadi versi JavaScript yang serasi dengan pelayar yang lebih tua. Anda juga harus menguji perpustakaan anda dalam penyemak imbas yang berbeza untuk mengenal pasti dan menyelesaikan sebarang masalah keserasian.

Bagaimana saya menangani kesilapan di perpustakaan JavaScript?

Pengendalian ralat adalah bahagian penting dalam membangunkan perpustakaan JavaScript. Anda harus berusaha untuk memberikan mesej ralat yang jelas dan berguna untuk membantu pengguna memahami apa yang salah. Anda boleh menggunakan blok cuba/menangkap untuk menangkap dan mengendalikan kesilapan. Anda juga boleh mempertimbangkan untuk memberikan cara untuk membiarkan pengguna melaporkan kesilapan dan masalah.

bagaimana saya mendapatkan maklum balas di perpustakaan JavaScript saya?

Terdapat beberapa cara untuk mendapatkan maklum balas mengenai perpustakaan JavaScript anda. Anda boleh meminta pemaju lain untuk menyemak kod anda, menyiarkan perpustakaan anda ke forum atau media sosial, atau menyiarkannya kepada pengurus pakej seperti NPM dan mendapatkan maklum balas. Anda harus terbuka untuk kritikan dan bersedia membuat perubahan berdasarkan maklum balas yang anda terima.

Atas ialah kandungan terperinci Reka dan Bina Perpustakaan JavaScript Anda Sendiri: Petua & Trik. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan