10個(gè)很棒的 JavaScript 庫(kù)

英文 | https://javascript.plainenglish.io/8-great-javascript-libraries-for-productivity-10eee7d8faee
翻譯 | 楊小二
Javascript現(xiàn)在已經(jīng)演變成一種你可以做任何事情的語(yǔ)言。如今,我們創(chuàng)建了服務(wù)器端代碼、前端代碼、移動(dòng)應(yīng)用程序代碼等等。
這是我以前用于不同項(xiàng)目的一些很棒的JS庫(kù)的列表。
1、Nodemon
地址:https://www.npmjs.com/package/nodemon
Nodemon 是一個(gè)可以實(shí)現(xiàn)服務(wù)器開(kāi)發(fā)的庫(kù)。任何更改后,它將自動(dòng)保存,自動(dòng)重新啟動(dòng)的服務(wù)器(或其他項(xiàng)目)。
它知道何時(shí)保存前端文件(例如 CSS),如果你正在更新需要重新啟動(dòng)的后端文件,它只會(huì)在你需要時(shí)嘗試重新啟動(dòng)。
它易于安裝并且在你的項(xiàng)目過(guò)程中節(jié)省了時(shí)間,這使得它成為每個(gè)項(xiàng)目的必備品。
2、UUID
地址:https://www.npmjs.com/package/uuid
UUID 是一種獨(dú)特的標(biāo)識(shí)標(biāo)準(zhǔn),可用于多種數(shù)據(jù)庫(kù)和其他語(yǔ)言。PostgreSQL 甚至有一個(gè) UUID 類(lèi)型可以用于 ID。它通過(guò)無(wú)法猜測(cè)出來(lái)增加安全性。
import { v4 as uuidv4 } from 'uuid';uuidv4(); // ? '9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d'
它易于使用,每次我需要數(shù)據(jù)庫(kù)的唯一值時(shí)我都會(huì)使用它。庫(kù)的 ID 符合 UUID 標(biāo)準(zhǔn)。
3、Axios
地址:https://github.com/axios/axios
Axios 是所有 HTTP 請(qǐng)求問(wèn)題的解決方案。它是一個(gè)基于 Promise 的 HTTP 客戶端,可簡(jiǎn)化從 API 請(qǐng)求數(shù)據(jù)的過(guò)程。
你可以輸入盡可能少的信息,也可以輸入盡可能多的信息。每當(dāng)我不需要添加參數(shù)時(shí),我都喜歡省略它們,而在 Axios 中這是可能的。
axios.get('/profile?id=12345').then(function (response) {// handle successconsole.log(response);}).catch(function (error) {// handle errorconsole.log(error);})
4、Lodash
地址:https://lodash.com/
Lodash 是一個(gè)實(shí)用程序庫(kù),具有大量用于處理字符串、數(shù)字、數(shù)組和對(duì)象的函數(shù)。它是一個(gè)很棒的庫(kù),因?yàn)樗哂写罅康墓δ芎土钊梭@嘆的文檔站點(diǎn)。
_.defaults({ 'a': 1 }, { 'a': 3, 'b': 2 });// → { 'a': 1, 'b': 2 }_.partition([1, 2, 3, 4], n => n % 2);// → [[1, 3], [2, 4]]
我強(qiáng)烈建議至少檢查一下這個(gè)庫(kù)和它的文檔。它具有解決高度利基問(wèn)題的功能和許多常見(jiàn)問(wèn)題的功能,例如,展平數(shù)組。
5、Luxon
地址:https://moment.github.io/luxon/#/
Luxon 是一個(gè)現(xiàn)代日期和時(shí)間操作庫(kù)。如果你曾經(jīng)處理過(guò)日期和時(shí)間,你選擇合適的庫(kù)是成功的一半。尤其是如果你注定要受到多個(gè)時(shí)區(qū)的影響時(shí),這個(gè)庫(kù)就非常有用。
DateTime.now().setZone('America/New_York').minus({ weeks: 1 }).endOf('day').toISO();let dt = DateTime.now();dt.toISO(); //=> '2017-04-20T11:32:00.000-04:00'
從某種意義上說(shuō),Luxon 比另一個(gè)著名日期時(shí)間操作庫(kù) Moment 更年輕、更現(xiàn)代化。然而,Luxon 使用 Intl 對(duì)象,而Moment使用 Date 對(duì)象。
6、Faker
地址:https://github.com/marak/Faker.js/
Faker 是我在構(gòu)建項(xiàng)目早期測(cè)試階段使用的一個(gè)庫(kù)。它是一個(gè)可以輕松將真實(shí)的測(cè)試數(shù)據(jù)添加到應(yīng)用程序中的庫(kù)。
let faker = require('faker');let randomName = faker.name.findName(); // Rowan Nikolauslet randomEmail = faker.internet.email(); // [email protected]
Faker 的強(qiáng)項(xiàng)肯定是你可以添加的不同數(shù)據(jù)的數(shù)量。所有數(shù)據(jù)僅用于測(cè)試目的。你可以添加各種地址、電子郵件、姓名,甚至比特幣地址和汽車(chē)制造商!
如果你厭倦了隨處可見(jiàn)的 Lorem Ipsum,你可能想看看這個(gè)庫(kù)。
7、Dotenv
Dotenv 是一個(gè)用于確保你的應(yīng)用程序是安全的庫(kù)。提高安全性的方法之一就是使用環(huán)境變量。這就是這個(gè)庫(kù)的用途,它是用于此目的最常用的庫(kù)之一。
DB_HOST=localhostDB_USER=rootDB_PASS=passw0rd
你可以使用應(yīng)用程序的所有環(huán)境變量創(chuàng)建一個(gè) .dotenv 文件。一定不要提交這些,因?yàn)檫@些應(yīng)該是特定于環(huán)境的,或者只在一臺(tái) PC 上工作以獲得最大的安全性。
8、Mongoose
地址:https://mongoosejs.com/
Mongoose 是一個(gè)很棒的庫(kù),可以在你使用 MongoDB 數(shù)據(jù)庫(kù)時(shí)使用。它是一個(gè)對(duì)象建模庫(kù),使用 Mongo 和 Javascript 盡可能容易。
const mongoose = require('mongoose');mongoose.connect('mongodb://localhost:27017/db-url', {useNewUrlParser: true, useUnifiedTopology: true});const Cat = mongoose.model('Cat', { name: String });const kitty = new Cat({ name: 'Taco' });kitty.save().then(() => console.log('Cat added'));
幾乎所有的 Mongo 和 Javascript 教程都以這個(gè)庫(kù)為特色,而不是默認(rèn)的 MongoDB 庫(kù),因?yàn)樗苋菀祝蠖鄶?shù)開(kāi)發(fā)人員都離不開(kāi)它。
9、Realm
地址:https://realm.io/
Realm 在用于數(shù)據(jù)庫(kù)開(kāi)發(fā)的形式上類(lèi)似于 Mongoose。我只將 Realm 用于移動(dòng)應(yīng)用程序開(kāi)發(fā)中,一旦設(shè)置好,它就會(huì)展現(xiàn)它的工作魅力。
const studentSchema = {name: "Student",properties: {name: "string",grades: "int[]"}}
對(duì)于 React Native 開(kāi)發(fā)來(lái)說(shuō),真正優(yōu)秀的數(shù)據(jù)庫(kù)選項(xiàng)并不多,我認(rèn)為 Realm 確實(shí)有點(diǎn)填補(bǔ)了這個(gè)角色。它的數(shù)據(jù)庫(kù)與 Mongoose 非常相似,它可以在 MongoDB 上運(yùn)行。
10、GatsbyJS
地址:https://www.gatsbyjs.com/
Gatsby 是一個(gè)靜態(tài)的服務(wù)器渲染網(wǎng)站庫(kù)。它類(lèi)似于 NextJS,雖然它目前缺乏一些功能,但我認(rèn)為開(kāi)發(fā)人員的體驗(yàn)比我嘗試過(guò)的其他類(lèi)型的庫(kù)都要好。
import React from "react"export default function Home() {return (<div style={{ color: `purple` }}><h1>Hello Gatsby!</h1><p>What a world.</p></div>);}
它使用 React 和 GraphQL 為中小型網(wǎng)站創(chuàng)建了一個(gè)非常好的技術(shù)堆棧。它適用于從營(yíng)銷(xiāo)到博客的任何內(nèi)容。
結(jié)論
這些只是我過(guò)去使用過(guò)的一些庫(kù)。作為開(kāi)發(fā)人員,你可能每天都會(huì)遇到新的庫(kù),并且很容易過(guò)分使用它。
我喜歡盡可能少地使用庫(kù),我只使用較大的庫(kù)或適用于某些問(wèn)題的庫(kù)。
非常感謝你的閱讀,祝你有美好的一天。
學(xué)習(xí)更多技能
請(qǐng)點(diǎn)擊下方公眾號(hào)
![]()

