Rumah hujung hadapan web tutorial js 如何能让js模块变得更好用

如何能让js模块变得更好用

Dec 04, 2017 am 09:28 AM
javascript Mudah digunakan

很多人都使用过npm上分享过的JavaScript模块,但是有时候使用的JavaScript模块感觉再好用点就好了,所以本文将站在模块使用者的角度总结一下,如何能让模块变得更好用。

提供 ES6 模块的入口

webpack 和 rollup 都支持对 ES6 模块做一些静态优化(例如 Tree Shaking 和Scope Hoisting),它们都会优先读取 package.json 中的 module 字段作为 ES6 模块的入口,若没有 module 才会读取 main 字段作为 CommonJS 模块的入口。通常的做法是:使用 ES6 语法编写源码,然后用模块打包工具结合语法转换工具生成 CommonJS 模块和 ES6 模块,这样就可以同时提供 main 和 module 字段了。

提供 TypeScript 的类型声明文件

如果你的用户使用了 TypeScript 但你的模块没有提供声明文件,他们就不得不在项目中添加一段代码避免 TypeScript 的编译错误;另外,这样做并不只是对使用 TypeScript 的用户友好,因为大部分代码编辑器(Webstorm、VS Code 等)都能识别 TypeScript 的类型声明,它们可以据此提供更精准的代码提示并在用户传入错误的参数个数或类型时给出提示。

最好的做法是使用 TypeScript 编写你的模块,编译时会自动生成类型声明。除此之外,你也可以参照 文档 手动维护一份声明文件。你可以在你的模块根目录下添加 index.d.ts 文件,或者在 package.json 中声明 typings 字段提供声明文件的位置。

让模块同时在 Node.js 与浏览器中运行

你可以通过检测是否有名为 window 的全局变量(例如 !!typeof window )来判断模块当前是运行在 Node.js 还是浏览器中,然后使用不同的方式实现你的功能。

这种方法比较常见,但如果用户使用了模块打包工具,这样做会导致 Node.js 与浏览器的实现方式都会被包含在最终的输出文件中。针对这个问题,开源社区提出了在 package.json 中添加 browser 字段的 提议 ,目前 webpack 和 rollup 都已经支持这个字段了。

browser 字段有两种使用方式:

给 browser 字段提供一个文件路径作为在浏览器端使用时的模块入口,但需要注意的是,打包工具会优先使用 browser 字段指定的文件路径作为模块入口,所以你的 module 字段会被忽略,这会导致打包工具不会优化你的代码。详细信息请参考 这个问题 。

如果你只想替换其中一些文件,你可以声明一个对象。

举个例子,假设你的模块里有两个文件: http.js 和 xhr.js ,第一个文件使用 Node.js 中的 http 模块发起请求,另一个使用浏览器中的 XMLHTTPRequest 实现了同样的功能。为了使用适当的文件,你的模块代码中应该始终 require('./path/to/http.js') ,并在 package.json 中声明:

{
 "browser": {
   "./path/to/http.js": "./path/to/xhr.js"
 }
}

这样一来,当你的模块在打包工具中使用时,打包工具只会将 xhr.js 的代码包含在最终的输出文件中。

使用各种服务武装你的项目

大部分 JavaScript 项目都是开源的,而开源社区也提供了很多针对开源项目的免费服务,它们可以给你的项目提供更有力的帮助,这里列举几个比较常用的。

一个项目最常使用的服务就是持续集成了。持续集成服务能将测试、代码风格检测、打包等任务放在服务器上,并在你提交代码时自动运行,常用的有 Travis CI 、 CircleCI 和 AppVeyor 。Travis CI 对开源项目免费,提供 Linux 与 OS X 运行环境;CircleCI 对开源与私有项目都免费,但每个月有 1500 分钟的运行时间限制;AppVeyor 提供 Windows 运行环境,同样对开源项目免费。

运行完测试之后,你还可以将测试覆盖率上传到 Coveralls 。这个服务能让你在线浏览代码的测试覆盖情况。

如果你想让你的模块在各个版本的各种浏览器、平台下得到充分的测试,你还可以使用 Sauce Labs 和 BrowserStack ,它们都是对开源项目免费的,但需要发邮件申请。

最后, Shields IO 提供了各种图标,这些图标能为你的项目提供很多额外信息,包括但不限于 npm 版本号、下载量、测试通过状态、测试覆盖率、文件大小、依赖是否过期等。

虽然以上的建议大多属于锦上添花,但这会让你的模块对用户更加友好,希望以上的建议能在你开发自己的模块时给你一点帮助。

以上内容就是关于如何能让js模块变得更好用的方法,希望能帮助到大家。

相关推荐:

详解JavaScript模块化编程

javascript模块化编程详解

详解JavaScript模块化开发

Atas ialah kandungan terperinci 如何能让js模块变得更好用. 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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Akan R.E.P.O. Ada Crossplay?
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk melaksanakan sistem pengecaman pertuturan dalam talian menggunakan WebSocket dan JavaScript Bagaimana untuk melaksanakan sistem pengecaman pertuturan dalam talian menggunakan WebSocket dan JavaScript Dec 17, 2023 pm 02:54 PM

Cara menggunakan WebSocket dan JavaScript untuk melaksanakan sistem pengecaman pertuturan dalam talian Pengenalan: Dengan perkembangan teknologi yang berterusan, teknologi pengecaman pertuturan telah menjadi bahagian penting dalam bidang kecerdasan buatan. Sistem pengecaman pertuturan dalam talian berdasarkan WebSocket dan JavaScript mempunyai ciri kependaman rendah, masa nyata dan platform merentas, dan telah menjadi penyelesaian yang digunakan secara meluas. Artikel ini akan memperkenalkan cara menggunakan WebSocket dan JavaScript untuk melaksanakan sistem pengecaman pertuturan dalam talian.

WebSocket dan JavaScript: teknologi utama untuk melaksanakan sistem pemantauan masa nyata WebSocket dan JavaScript: teknologi utama untuk melaksanakan sistem pemantauan masa nyata Dec 17, 2023 pm 05:30 PM

WebSocket dan JavaScript: Teknologi utama untuk merealisasikan sistem pemantauan masa nyata Pengenalan: Dengan perkembangan pesat teknologi Internet, sistem pemantauan masa nyata telah digunakan secara meluas dalam pelbagai bidang. Salah satu teknologi utama untuk mencapai pemantauan masa nyata ialah gabungan WebSocket dan JavaScript. Artikel ini akan memperkenalkan aplikasi WebSocket dan JavaScript dalam sistem pemantauan masa nyata, memberikan contoh kod dan menerangkan prinsip pelaksanaannya secara terperinci. 1. Teknologi WebSocket

Cara menggunakan JavaScript dan WebSocket untuk melaksanakan sistem pesanan dalam talian masa nyata Cara menggunakan JavaScript dan WebSocket untuk melaksanakan sistem pesanan dalam talian masa nyata Dec 17, 2023 pm 12:09 PM

Pengenalan kepada cara menggunakan JavaScript dan WebSocket untuk melaksanakan sistem pesanan dalam talian masa nyata: Dengan populariti Internet dan kemajuan teknologi, semakin banyak restoran telah mula menyediakan perkhidmatan pesanan dalam talian. Untuk melaksanakan sistem pesanan dalam talian masa nyata, kami boleh menggunakan teknologi JavaScript dan WebSocket. WebSocket ialah protokol komunikasi dupleks penuh berdasarkan protokol TCP, yang boleh merealisasikan komunikasi dua hala masa nyata antara pelanggan dan pelayan. Dalam sistem pesanan dalam talian masa nyata, apabila pengguna memilih hidangan dan membuat pesanan

Cadangan emulator Java: Kelima-lima ini mudah digunakan dan praktikal! Cadangan emulator Java: Kelima-lima ini mudah digunakan dan praktikal! Feb 22, 2024 pm 08:42 PM

Emulator Java ialah perisian yang boleh menjalankan aplikasi Java pada komputer atau peranti. Ia boleh mensimulasikan mesin maya Java dan melaksanakan Java bytecode, membolehkan pengguna menjalankan program Java pada platform yang berbeza. Simulator Java digunakan secara meluas dalam pembangunan perisian, pembelajaran dan ujian. Artikel ini akan memperkenalkan lima emulator Java yang berguna dan praktikal yang boleh memenuhi keperluan pengguna yang berbeza dan membantu pengguna membangun dan menjalankan program Java dengan lebih cekap. Emulator pertama ialah Eclipse. Ecl

Platform dagangan usdt manakah yang berguna? Disyorkan sepuluh teratas profesional platform dagangan usdt Platform dagangan usdt manakah yang berguna? Disyorkan sepuluh teratas profesional platform dagangan usdt Feb 10, 2024 pm 03:10 PM

Platform dagangan usdt manakah yang berguna? Memandangkan populariti mata wang kripto dan nilai pasarannya terus berkembang, semakin ramai orang memberi perhatian dan mengambil bahagian dalam transaksi mata wang digital. Sebagai salah satu stablecoin terbesar di dunia, USDT (Tether) telah mendapat perhatian dan penggunaan yang meluas. Apabila memilih platform dagangan usdt, berikut adalah beberapa platform profesional yang patut disyorkan. 1. Binance Binance ialah salah satu platform dagangan mata wang kripto terbesar di dunia dan salah satu bursa pertama yang menyokong dagangan USDT. Pasukan teknikal dan langkah keselamatan Binance sangat dipuji, menyediakan pengguna dengan rangkaian penuh fungsi dan perkhidmatan perdagangan. 2. Huobi Huobi ialah platform dagangan mata wang kripto terkemuka yang menyediakan pelbagai pasangan dagangan dan pelbagai alatan serta terkenal dengan antara muka mesra dan pengalaman pengguna yang baik. 3. OK

Bagaimana untuk melaksanakan sistem tempahan dalam talian menggunakan WebSocket dan JavaScript Bagaimana untuk melaksanakan sistem tempahan dalam talian menggunakan WebSocket dan JavaScript Dec 17, 2023 am 09:39 AM

Cara menggunakan WebSocket dan JavaScript untuk melaksanakan sistem tempahan dalam talian Dalam era digital hari ini, semakin banyak perniagaan dan perkhidmatan perlu menyediakan fungsi tempahan dalam talian. Adalah penting untuk melaksanakan sistem tempahan dalam talian yang cekap dan masa nyata. Artikel ini akan memperkenalkan cara menggunakan WebSocket dan JavaScript untuk melaksanakan sistem tempahan dalam talian dan memberikan contoh kod khusus. 1. Apakah itu WebSocket? WebSocket ialah kaedah dupleks penuh pada sambungan TCP tunggal.

4 perisian penulisan AI yang sangat berguna, mari lihat yang mana satu lebih baik untuk anda! 4 perisian penulisan AI yang sangat berguna, mari lihat yang mana satu lebih baik untuk anda! Jan 16, 2024 pm 03:57 PM

Dengan pembangunan berterusan teknologi kecerdasan buatan, perisian penulisan pintar AI telah menjadi pilihan baharu untuk penulisan moden. Perisian ini menggunakan teknologi seperti pembelajaran mesin dan pemprosesan bahasa semula jadi untuk membantu pengguna menjana artikel, blog, siaran akhbar dan kandungan lain yang berkualiti tinggi. Walau bagaimanapun, antara banyak perisian penulisan AI, yang manakah mudah digunakan di China? Di bawah, kami akan mengesyorkan 4 perisian penulisan AI yang sangat baik kepada anda Kandungan akan ditulis semula sebagai: Cadangan 1: Pengeluaran Kecerdasan Buatan AiAi Production menggunakan teknologi pemprosesan bahasa semula jadi yang canggih dan algoritma pembelajaran mendalam untuk memahami keperluan pengguna dan menjana artikel berkualiti tinggi. Ia boleh menjana pelbagai jenis artikel secara automatik, seperti salinan pemasaran, skrip video, pelbagai laporan kertas kerja, dsb., untuk membantu pengguna menyelesaikan tugas menulis dengan cepat. Love Production menyediakan 166 templat penulisan dan

JavaScript dan WebSocket: Membina sistem ramalan cuaca masa nyata yang cekap JavaScript dan WebSocket: Membina sistem ramalan cuaca masa nyata yang cekap Dec 17, 2023 pm 05:13 PM

JavaScript dan WebSocket: Membina sistem ramalan cuaca masa nyata yang cekap Pengenalan: Hari ini, ketepatan ramalan cuaca sangat penting kepada kehidupan harian dan membuat keputusan. Apabila teknologi berkembang, kami boleh menyediakan ramalan cuaca yang lebih tepat dan boleh dipercayai dengan mendapatkan data cuaca dalam masa nyata. Dalam artikel ini, kita akan mempelajari cara menggunakan teknologi JavaScript dan WebSocket untuk membina sistem ramalan cuaca masa nyata yang cekap. Artikel ini akan menunjukkan proses pelaksanaan melalui contoh kod tertentu. Kami

See all articles