Mengganti Pug menjadi EJS

Yunan Helmy
Extra Integer
Published in
2 min readJun 27, 2019

Bagaimana jika kita terlanjur membuat project ExpressJS dengan Pug sebagai view engine, tapi ingin mengubahnya menjadi EJS?

Beginilah caranya.

Install EJS

Kita perlu meng-install ejs dan express-ejs-extend dengan menggunakan command npm install ejs express-ejs-extend --save .

ejs merupakan view engine yang ingin kita pasang, sedangkan express-ejs-extend adalah layout support untuk EJS.

Ubah view engine

Di dalam entry point (misalkan index.js / app.js) dimana terdapat kode app.set('view engine', 'pug') , perlu kita ubah menjadi app.set('view engine', 'ejs') .

Jangan lupa tambahkan layout support sebelum memasang EJS. Tambahkan kode di bawah ini app.engine('ejs', require('express-ejs-extend')).

Begini kode lengkapnya :

app.engine('ejs', require('express-ejs-extend'))
app.set('view engine', 'ejs')

Konversi Pug menjadi EJS

Inilah hal yang paling repot. Kita perlu mengubah semua kode Pug menjadi EJS. Mulai dari layout sampai content.

  1. Buat duplikat file layout. Misalkan file asli bernama layout.pug, berarti kita perlu membuat file layout.ejs.
  2. Konversi dari Pug ke EJS.
  3. Block content untuk ejs diubah menjadi <%- content %>
  4. Buat duplikat file content. Misalkan file asli bernama error.pug, berarti kita perlu membuat error.ejs.
  5. Extend layout jika diperlukan : extend('layout') .
  6. Konversi dari Pug ke EJS.

Contoh kode EJS : <%= message %>.

Jika kita merasa terlalu repot mengubah kode Pug, PugHtml layak untuk dicoba.

Hapus Pug dari package.json

Setelah memastikan semua kode berjalan dengan semestinya, kita perlu menghapus Pug dari package.json kemudian menjalankan npm install. File-file Pug juga perlu dihapus demi kebersihan bersama.

Kesimpulan

Setelah kita mencoba mengubah Pug menjadi EJS, kita dapat menyadari bahwa sebenarnya mengubah view engine akan memerlukan effort yang besar jika project kita sudah memiliki banyak views. Sebagai alternatifnya, kita bisa menggabukan dua view engine Pug dan EJS untuk kemudian dipilih salah satu melalui router.

--

--