Yeoman! Sana Puanım 9 Kanka…

Nevcan Uludaş
SabancıDx
Published in
3 min readDec 31, 2019

Yeni bir web uygulaması geliştirmeye karar verdiğinizde önce ihtiyaç duyacağınız teknolojilere karar verir, ardından çalışma ortamınızı oluşturmaya başlarsınız. Farklı projeler olsa bile birçok uygulamada ortak framework’ler ve kütüphaneler kullanılabilir. Vue.js, Bulma, Scss, Pug, TypeScript, Webpack bizim iki farklı uygulamada kullandığımız ortak önyüz teknolojileri. Çalışma ortamını ve dizin yapısını hazırlamak çoğu zaman 1 gününüze mal olabiliyor. Bu yapıyı bir kez hazırladığınızda, farklı uygulamalarda hızlıca tekrar kullanabilmek güzel olmaz mıydı? Yeoman, hazırladığınız bu yapıyı (scaffolding) kolayca tekrar kullanabilmemizi sağlamaktadır. Eğer bir scaffolding hazırlamak için yeterli tecrübeniz yoksa Yeoman’den tamamen ümidi kesmeyin. Yeoman’in internet sitesinden kullanıma hazır pek çok scaffolding’den birini indirip uygulama geliştirmeye hızlıca başlayabilirsiniz.

Yeoman kelime anlamı olarak; çiftçi, saray çalışanı, küçük toprak sahibi anlamlarına geliyor. Logosuna baktığımızda bu bıyıklı abinin hazırladığımız uygulama sarayımızın en sadık çalışanlarından biri olmaya aday gibi durduğunu söyleyebilirim.

Yeoman’i hem client-side hem de server-side teknolojiler ile kullanmak mümkündür. Temel seviye JS, node/npm, bower, gulp bilgisi konunun daha rahat anlaşılması için avantaj sağlayacaktır.

KURULUM

Yeoman bir node.js modülüdür. O yüzden Yeoman’i kurmak için bilgisayarınızda Node.js ve NPM’in kurulu olması gerekir.

Bilgisayarınıza Yeoman kurmak için aşağıdaki komutu, komut satırında çalıştırmanız gerekiyor. Yeoman ve modülleri global olarak kurulur. Bunun nedeni kullanımının proje bazlı olmamasından kaynaklanmaktadır.

npm install yo --global

Bumm! Hepsi bu kadar. Yeoman artık kullanıma hazır. 🎉 Şimdi sırada scaffoling kurulumumuzu yapmamız gerekiyor. Kendimiz bir generator hazırlayabiliriz ya da internet sitesinden hazır bir generator indirmemiz yeterli olacaktır. Internetteki generator’ları incelemek için linke (https://yeoman.io/generators) göz atabilirsiniz ya da ‘npm search yeoman-generator’ komutu çalıştırdığınızda aşağıdaki gibi sonuçları görüntüleyebilirsiniz.

npm search yeoman-generatorNAME                      | DESCRIPTION          | AUTHOR
yeoman-generator | Rails-inspired… | =addyosman
generator-jhipster | Spring Boot +… | =deepu105…
yo | CLI tool for… | =addyosman
generator-mocha | Yeoman generator… | =addyosman
generator-npm-init | npm init for yeoman | =caseywebb
generator-feathers | A Yeoman generator… | =daffl…
generator-nitro | Yeoman generator… | =ernscht…
generator-jasmine | Yeoman generator… | =ulisesgas
generator-jest | Add jest support to… | =sboudrias
generator-code | Yeoman generator… | =aeschli…
yeoman-environment | Handles the… | =addyosman
generator-tabris-js | A Yeoman generator… | =eugenneuf
generator-office | Yeoman generator… | =microsoft
generator-nm | Scaffold out a node… | =sindresor
generator-feathers-ts | A Yeoman generator… | =ucokfm
generator-cake-addin | A yeoman generator… | =admiringw
generator-eslint | A generator for… | =eslintbot
generator-gaia | Yeaman generator… | =kael
generator-kroms | Very opinionated… | =kroms-bot
generator-csharp-cli-app | Yeoman generator… | =ngeor

Generator Kurulumu

Standart bir web uygulaması geliştirmeye başlamak için generator-webapp isimli Yeoman modülünü aşağıdaki komutu çalıştırarak kuralım.

npm install generator-webapp --global

Kuruluma hazırız. Başlayalım mı? Yapmamız gereken ilk şey bir proje klasörü oluşturup ardından generator’ı çalıştırmak. Bunun için aşağıdaki komutları sırasıyla çalıştırmamız yeterli.

mkdir PROJECT_NAME
cd PROJECT_NAME
yo webapp

Sonrasında ise webapp’in bize sunduğu seçenekleri takip ederek saniyeler içerisinde (internet bağlantı hızınıza bağlı olarak birkaç dakika sürebilir) başlamaya hazır hale gelmiş olduk. Webapp’in bizim için hazırladığı dizin yapısına bir göz atalım isterseniz.

Gördüğünüz gibi birkaç dakika içerisinde bir uygulamaya başlamaya hazır hale Yeoman sayesinde gelebiliyoruz.

Bir sonraki makalede nasıl kendi generator’ümüzü ve henüz bahsi geçmeyen sub-generator’lerin oluşturulacağından bahsedeceğim. Takipte kalın ✌🏻

--

--