Links
🧱

Nodejs Temelleri

Paket Yönetimi

Paket kurulumları npm komutu yardımıyla yapılır.

Paketler ve Açıklamaları

Paketler NPM ile npm install <paket> komutu yardımıyla indirilir.
  • Normal kurulum: Ön ek gerektirmez
  • Global kurulum: -g ön eki ile yapılır
  • Dev kurulum: --save-dev son eki ile yapılır

Normal Paketler

Geliştirici Paketleri

NPM Kullanım Yapısı

npm <operasyon> <varsa_ön_ek> <paket> <varsa_son_ek>
  • <operasyon> install, remove ...
  • <varsa_ön_ek> -g ...
  • <paket> nodemon, colors, express ...
  • <varsa_son_ek> --save-dev ...

Paket Kurulum Örnekleri

npm install nodemon --save-devnpm install -g babel-clinpm install colors

Nodejs Dependency Prefixes

<prefix><dependency_version>
  • ~ This version
  • ^ latest version

Ortam Değişkenleri

Ortam ön ayarları scriptler çalıştırılmadan önce girilen komutlardır.
Heroku gibi sitelerde üretim modu ön eki uygulama çalıştırılmadan uygulanır.

Ortam Değişkenleri Açıklamaları

Kod içerisinde process.env.<değişken> şeklinde erişilir.
  • <dosya_ismi> örnekleri:
    • * ile her şeyi
    • lib\* ile lib'le başlayan herşeyi
    • index ile index.js dosyasını
  • <özel_mod> örnekleri:
    • stagging Normal iskelet
    • production Üretim iskeleti
  • <port> örnekleri:
    • 3000 Normal port
    • 5000 Üretim portu
Değişken örnekleri keyfidir.

Ortam Değişkenleri Kullanımı

set NODE_ENV=production & set DEBUG=* & npm run-script dev

Herokunun Kullandığı Ortam Değişkenleri

Ücretsiz nodejs sunucularından biri olan heroku'nun hali hazırda sunduğu ortam değişkenler:

Nodejs ES6 Yapısını Kullanma

Nodejs'de ES6 yapısı babel yardımcısı ile kullanabilinmektedir.
Tarayıcı es5 yapısını kullanmaktadır.

Babel Paketleri

  • Global kurulum: -g ön eki ile yapılır
  • Dev kurulum: --save-dev son eki ile yapılır

Babel Paketlerinin Kurulumu

Global olarak babel consol komutlarını ve işleyicisini ekler.
npm install -g babel-clinpm install babel-register babel-preset-env --save-dev
babel-cli global olarak kurulmazsa babel komutları her yerde tanınmaz.

Babel Yapılandırması

Bu adım ve sonrasındaki işlemler projenin (index.js) dizininde yapılmalıdır

Babel Derleyici Yapılandırmasını Oluşturma

Babelrc dosyası belli ayarlarla oluşturma
@echo {"presets":[["env",{"targets":{"edge":"17","firefox":"60","chrome":"67","safari":"11.1","node":"current"}}]]} > .babelrc
targets isteğe bağlıdır. Hedeflenen tarayıcıları gösterir.

Babel Derleme Araçlarını Yapılandırma

Tools dizini oluşturup, içindeki dosyaya derleme parametrelerini yazıyoruz.
mkdir tools & @echo require("babel-register") > tools/dev && @echo require("./../index.js") >> tools/dev
Not: Bu kısımdaki tools/dev ile diğer adımdaki işlemler yapılmaktadır

Packege.json Oluşturma

Bu işlem oluşturulması istenen dizinde yapılmalıdır.

Package.json Scriptlerini Oluşturma

package.json dosyası içerisindeki script kısmında alttakiler eklenir.
"scripts": { "test": "node test", "start": "node dist/index.js", "dev": "set DEBUG=* & node tools/dev", "build": "mkdir dist & babel *.js lib/**/*.js -s -d dist & xcopy public dist\\public /s /i /e /y", "build:db": "mkdir dist & babel *.js lib/**/*.js -s -d dist & xcopy public dist\\public /s /i /e /y & xcopy database dist\\database /s /i /e /y", "build:start": "npm run-script build & npm run-script start", "clean": "xcopy dist\\database database /s /i /e /y & rd /s /q dist", "clean:all": "rd /s /q dist", "rebuild": "npm run-script clean & npm run-script build", "rebuild:db": "npm run-script clean & npm run-script build:db"}

Build Script Yapısı

  • mkdir dist Dist adlı klasör oluşturulur
  • babel [her bir js dosyasının yolu] -s -d dist Javasciprt dosyaları es5 tipinde düzenlenip dist içine atılır
  • xcopy [klasör] dist\\[klasör] /s /i /e /y Dinamik veri tutan klasörler varsa dist içine kopyalanır

Package.json için Script Açıklamaları

Programı Derleme İşlemi

Package.json dosyasındaki scriptleri çalıştırma
  • [script] scripts içindeki isimler; start, dev, build

VsCode için Debug Ayarları

Açıklama videosu ve metni için üzerlerine tıklayabilirsin.
## Kod Bankası​### Fonksiyon İsmi, Satırı ve Dosya Adı Alma​```jsexport function _getCallerInfo() { const err = new Error(); let index = 3; let line = err.stack.split("\n")[index]; let functionName = line.split(" at ")[1].split(" ")[0];​ while (functionName.includes(`C:/`)) { index++; line = err.stack.split("\n")[index]; functionName = line.split(" at ")[1].split(" ")[0]; }​ let callerInfo = line.split(`${projectName}/`); callerInfo = callerInfo[callerInfo.length - 1];​ const filename = callerInfo.split(".")[0]; const lineInfos = callerInfo.replace(filename + ".js:", "").replace(")", ""); return `${filename}:${functionName}:${lineInfos}`; }

Harici Bağlantılar

Last modified 3yr ago