NodeJS: 12 Paket untuk Produktivitas Pengembang





Manajer proses untuk produksi dengan load balancer. Wrappers untuk debugging dan Git hooks, melindungi aplikasi ekspres melalui header HTTP, utilitas dengan lebih dari 180 fungsi untuk bekerja dengan tanggal, dan alat lain yang akan menghemat waktu Anda. Koleksi ini sangat berguna bagi pengembang NodeJS pemula, tetapi dapat menyenangkan para skeptis yang berpengalaman.



Kapan pun Anda perlu memperbaiki masalah dengan kode Anda, kemungkinan besar paket sudah ada untuk menyelesaikan masalah Anda. Berikut adalah daftar paket yang menurut saya harus diketahui oleh setiap pengembang. Pertimbangkan paket npm ini sebagai penghemat waktu.



1. Husky



Husky memudahkan penerapan hook di Git. Ini memungkinkan Anda meminta setiap orang untuk secara otomatis melakukan lint dan menguji kode Anda sebelum melakukan atau mendorong ke repositori.





Sumber husky



Instalasi



yarn add husky


Aplikasi



Contoh pengait dengan husky:



// package.json
{
  "husky": {
    "hooks": {
      "pre-commit": "npm lint",
      "pre-push": "npm test"
    }
  }
}


pre-commitberjalan sebelum melakukan.

pre-pushsebelum mengirimkan ke repositori.






2. Dotenv



Dotenv adalah modul tanpa ketergantungan. Ini memuat variabel lingkungan dari file .envke process.env . Menjaga konfigurasi dalam lingkungan yang terpisah dari kode didasarkan pada metodologi aplikasi dua belas faktor . Sumber dotenv .



Instalasi



yarn add dotenv


Aplikasi



Tulis requiredan setel nilai sedini mungkin dalam aplikasi Anda dotenv:



require('dotenv').config()


Buat .envfile di direktori root proyek Anda. Tambahkan variabel lingkungan pada baris baru sebagai NAME=VALUE. Misalnya:



DB_HOST=localhost
DB_USER=root
DB_PASS=s1mpl3


Sekarang process.envberisi kunci dan nilai dari file .env:



const db = require('db')
db.connect({ host: process.env.DB_HOST, username: process.env.DB_USER, password: process.env.DB_PASS})





3. tanggal-fns



Tanggal-fns mirip dengan lodash, tetapi dirancang untuk bekerja dengan tanggal. Menyediakan seperangkat alat manipulasi tanggal JavaScript yang lengkap namun sederhana dan konsisten di browser dan Node.JS.





Sumber tanggal-fns



Instalasi



yarn add date-fns


Aplikasi



Contoh dengan date-fns:



import { compareAsc, format } from 'date-fns'
format(new Date(2014, 1, 11), 'yyyy-MM-dd')  
//=> '2014-02-11'
const dates = [  
  new Date(1995, 6, 2),  
  new Date(1987, 1, 11),  
  new Date(1989, 6, 10),  
]  
dates.sort(compareAsc)  
//=> [  
//   Wed Feb 11 1987 00:00:00,  
//   Mon Jul 10 1989 00:00:00,  
//   Sun Jul 02 1995 00:00:00  
// ]


Dokumentasi dengan contoh dan kasus penggunaan.






4. Bunyan



Bunyan adalah pustaka logging JSON yang mudah digunakan dan kuat untuk Node.





Sumber bunyan



Instalasi



yarn add bunyan


Harap dicatat: CLI bunyanditulis agar kompatibel (dalam alasan) dengan semua versi log Bunyan. Oleh karena itu, Anda dapat menginstalnya secara global: yarn add global bunyanuntuk mendapatkan alat ini PATHdan kemudian gunakan instalasi Bunyan lokal untuk aplikasi.



Aplikasi



Bunyan adalah perpustakaan logging JSON yang sederhana dan cepat untuk layanan Node.js.



// hi.jsconst bunyan = require('bunyan');
const log = bunyan.createLogger({name: "myapp"});
log.info("hi");


Inilah yang dikembalikan ke konsol jika Anda menjalankan node hi.js.










5. Ramda



Ramda adalah pustaka gaya fungsional yang praktis dan berguna. Ini menekankan gaya fungsional murni. Keabadian dan fungsionalitas bebas efek samping adalah inti dari filosofi desain Ramda. Pendekatan ini dapat membantu Anda menulis kode yang sederhana dan elegan.





Sumber ramda



Instalasi



yarn add ramda


Aplikasi



import * as R from 'ramda'
const greet = R.replace('{name}', R.__, 'Hello, {name}!'); 
greet('Alice'); //=> 'Hello, Alice!'


Contoh kode






6. Debug



Debug adalah utilitas debugging JavaScript kecil yang dimodelkan setelah teknik debugging Node.JS.





Sumber debug



Instalasi



yarn add debug


Aplikasi



Debug menyediakan fungsi. Cukup teruskan nama modul Anda ke fungsi ini, dan itu akan mengembalikan versi yang didekorasi console.erroruntuk meneruskan pernyataan debug.



const debug = require('debug');
const log = debug('http:server');
const http = require('http');
const name = 'My App name';
log('booting %o', name);
http.createServer((req, res) => {
  log(req.method + ' ' + req.url);
  res.end('debug examplen');
}).listen(3200, () => {
  log('listening');
});
//   
// DEBUG=http:server node app.js


Menampilkan dan menyembunyikan keluaran debug untuk modul secara keseluruhan atau sebagian.








7. Datar



Datar mengambil sebuah objek dan meratakannya. Anda juga bisa menciutkan objek yang dipisahkan kunci. [Catatan. terjemahan. - tidak hanya titik yang bisa menjadi pemisah].





Sumber Datar



Instalasi



yarn add flat


Aplikasi



const flatten = require('flat')
flatten({  
    key1: {  
        keyA: 'valueI'  
    },  
    key2: {  
        keyB: 'valueII'  
    },  
    key3: { a: { b: { c: 2 } } }  
})
// {  
//   'key1.keyA': 'valueI',  
//   'key2.keyB': 'valueII',  
//   'key3.a.b.c': 2  
// }







8. JSON5



Format Interchange Data JSON5 adalah superset dari JSON yang bertujuan untuk mengurangi beberapa batasan JSON dengan memperluas sintaksnya untuk menyertakan beberapa fitur ECMAScript 5.1 .





Sumber JSON5



Instalasi



yarn add json5  
const JSON5 = require('json5')


Aplikasi



Perhatikan ekstensi file. JSON5 adalah superset, perpanjangan dari JSON.



{
  // 
  unquoted: 'and you can quote me on that',
  singleQuotes: 'I can use "double quotes" here',
  lineBreaks: "Look, Mom! \
No \\n's!",
  hexadecimal: 0xdecaf,
  leadingDecimalPoint: .8675309, andTrailing: 8675309.,
  positiveSign: +1,
  trailingComma: 'in objects', andIn: ['arrays',],
  "backwardsCompatible": "with JSON",
}





9. ESLint



ESLint adalah alat yang hebat untuk menghindari kesalahan dan menetapkan standar pengkodean untuk tim pengembangan. ESLint adalah alat untuk mengidentifikasi dan merepresentasikan pola yang ditemukan dalam kode ECMAScript / JavaScript.





Sumber ESLint



Instalasi dan aplikasi



yarn add eslint


Kemudian siapkan file konfigurasi:



./node_modules/.bin/eslint --init


Setelah itu, Anda dapat menjalankan ESLint di file atau direktori apa pun, misalnya:



./node_modules/.bin/eslint yourfile.js


Dokumentasi dengan banyak contoh untuk memulai dan menyiapkan.






10. PM2



PM2 adalah manajer proses produksi dengan penyeimbang beban bawaan. Ini memungkinkan Anda untuk menjaga aplikasi tetap berjalan setiap saat, memuatnya kembali tanpa waktu henti, dan memudahkan tugas administrasi sistem umum.





Sumber pm2



Instalasi



yarn add global pm2


Peluncuran aplikasi



Anda dapat menjalankan aplikasi apa pun (Node.js, Python, Ruby, binaries, $PATHdan sebagainya) seperti ini:



pm2 start app.js


Aplikasi Anda sekarang berjalan di bawah kendali daemon dan terus dipantau dan dipelihara. Pelajari lebih lanjut tentang manajemen proses, mulai cepat .



Dan inilah cara Anda dapat membuat daftar semua aplikasi yang berjalan:



pm2 ls






Lihat dokumentasi resmi untuk daftar lengkap fitur dan kapabilitas.






11. Helm



Helm membantu mengamankan aplikasi ekspres melalui header HTTP. Ini bukan peluru perak, tapi bisa membantu.





Sumber helm



Instalasi



yarn add helmet


Aplikasi



Helmetditulis dalam gaya Connect dan kompatibel dengan kerangka kerja seperti Express . Jika Anda membutuhkan dukungan Koa, lihat koa-helmet.)



const express = require("express");  
const helmet = require("helmet");
const app = express();
app.use(helmet());


Fungsi helm adalah pembungkus sekitar 11 middleware yang lebih kecil. Dengan kata lain, setara dengan



// ...
app.use(helmet());
// ... : 
app.use(helmet.contentSecurityPolicy());  
app.use(helmet.dnsPrefetchControl());  
app.use(helmet.expectCt());  
app.use(helmet.frameguard());  
app.use(helmet.hidePoweredBy());  
app.use(helmet.hsts());  
app.use(helmet.ieNoOpen());  
app.use(helmet.noSniff());  
app.use(helmet.permittedCrossDomainPolicies());  
app.use(helmet.referrerPolicy());  
app.use(helmet.xssFilter());





12. Kompresi



Kompresi adalah alat kompresi data.





Sumber kompresi



Instalasi



yarn add compression


Aplikasi



Saat menggunakan modul ini bersama dengan express, atau connectcukup panggil compression()middleware. Permintaan yang melewati middleware akan dikompresi.



const compression = require('compression')  
const express = require('express')
const app = express()
//     
app.use(compression())// ...


Alat apa yang Anda gunakan untuk bekerja dengan NodeJS?



gambar


Cari tahu detail tentang cara mendapatkan profesi profil tinggi dari awal atau Naik Level dalam keterampilan dan gaji dengan mengikuti kursus online SkillFactory:





E







All Articles