🧱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ırDev 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 şeyilib\*
ile lib'le başlayan herşeyiindex
ile index.js dosyasını
<özel_mod>
örnekleri:stagging
Normal iskeletproduction
Üretim iskeleti
<port>
örnekleri:3000
Normal port5000
Ü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ırDev 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şturulurbabel [her bir js dosyasının yolu] -s -d dist
Javasciprt dosyaları es5 tipinde düzenlenip dist içine atılırxcopy [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 updated
Was this helpful?