19 Haziran 2018 Salı

node versiyonunu yükseltmek

Linux/macOS
Node versiyonu, "n" isimli node versiyon yönetim paketi ile güncellenebilir. Bunun için node'un halihazırda yüklü olması gerekmektedir.

İlk olarak "n" paketi global olarak yüklenir:
sudo npm install n -g
Sonrasında istenen versiyon "n <versiyon numarası>" komutuyla yüklenebilir. Bazı durumlarda admin yetkisi istenebilir. Bu durumda bu komutu "sudo" ile çalıştırmak gerekecektir. Örneğin:
sudo n 0.12.2
Son stabil versiyonu için aşağıdaki komut kullanılabilir:
sudo n stable
Son versiyonu için aşağıdaki komut kullanılabilir:
sudo n latest

Windows
Windows için node'un sitesinden istenilen versiyonun ".msi" dosyası indirilerek yeniden yükleme yapılabilir.

Kaynak:
https://stackoverflow.com/a/10076029/6593949

create-react-app ile oluşturulan projeye hot-reload özelliği eklemek

create-react-app ile oluşturulan bir projede default olarak bir hot-reload özelliği bulunuyor. Ancak tüm sayfa yenilendiği için, başlarda çok problem olmasa da, proje büyüdükçe faydalı olmaktan çıkıyor.

"index.js" dosyasında, webpack'in "module.hot" özelliğine ekleme yapılarak hot-reload özelliği işlevsel hale getirilebiliyor.



Bunun için "index.js" dosyasında aşağıdaki gibi değişiklik yapmak gerekiyor:
import React from 'react';
import ReactDOM from 'react-dom';
import './assets/index.css';
import App from './App';
import registerServiceWorker from './registerServiceWorker';

ReactDOM.render(<App/>, document.getElementById('root'));

if (module.hot) {
module.hot.accept('./App', () => {
const NextApp = require('./App').default;
ReactDOM.render(<NextApp/>, document.getElementById('root'));
});
}

registerServiceWorker();
Vagrant vb. uygulamalar aracılığı ile geliştirme yaparken bu yeterli olmayabiliyor. Örneğin, geliştirme ortamı windows, kod derleme ortamı linux ise, windows tarafındaki dosya değişiklikleri, linux tarafından algılanamayabiliyor.

Bunun için ise root dizinde ".env" dosyasına aşağıdaki kodun eklenerek polling'in enable edilmesi gerekiyor. 

CHOKIDAR_USEPOLLING=true
Root dizinde bir ".env" dosyası yoksa, önce bunu oluşturmak gerekiyor.

Bu işlemler sonrasında hot-reload neredeyse sorunsuz çalışıyor. 


Kaynaklar: