Node.js'deki dosyaları otomatik olarak nasıl yeniden yükleyebilirim?


444

Node.js dosyalarının otomatik olarak yeniden yüklenmesini nasıl uygulayabileceğime dair bir fikrin var mı? Her dosya değiştirdiğimde sunucuyu yeniden başlatmaktan yoruldum. Görünüşe göre Node.js require()işlevi zaten gerekli ise dosyaları yeniden yüklemez, bu yüzden böyle bir şey yapmam gerekiyor:

var sys     = require('sys'), 
    http    = require('http'),
    posix   = require('posix'),
    json    = require('./json');

var script_name = '/some/path/to/app.js';
this.app = require('./app').app;

process.watchFile(script_name, function(curr, prev){
    posix.cat(script_name).addCallback(function(content){
        process.compile( content, script_name );
    });
});

http.createServer(this.app).listen( 8080 );

Ve app.js dosyasında var:

var file = require('./file');
this.app = function(req, res) { 
    file.serveFile( req, res, 'file.js');  
}

Ama bu da çalışmıyor - process.compile()İfadede 'zorunlu' tanımlanmadığını söyleyen bir hata alıyorum . process.compileevaling olduğu app.js ama node.js globaller hakkında hiçbir fikri yok.


4
Bu kodu her istekte çalıştırabileceğinizi biliyorsunuz:Object.keys(require.cache).forEach(function(key) { delete require.cache[key]; });
Tower

Yanıtlar:


562

Güncel alternatifi kadar iyi, supervisorolduğu nodemon:

Node.js uygulamanızdaki değişiklikleri izleyin ve sunucuyu otomatik olarak yeniden başlatın - geliştirme için mükemmel

Kullanmak için nodemon:

$ npm install nodemon -g
$ nodemon app.js

2
ve Nitrous.io'da kullanmak istiyorsanız - $ nodemon -L yourfile.js( coderwall.com/p/aqxl_q adresindeki tam açıklama )
drzaus

3
Ancak bu durumda, sunucu işlemini de yeniden başlatır.
Filipe

@Filipe, haklısın. Tekrar giriş yapmak için yönlendirildim. Keşke sadece o modifiye modülü yükledi.
ar2015

8
automatically restart the server - perfect for developmentçok fazla abartıdır. Yeniden yükleme sunucusu benim durumumda uzun zaman alan arka uç hizmetlerine giriş yapmak anlamına gelebilir. İşlem geliştirme kodunu değiştirdiğinizde android studio'un yaptığı durumu kaybetmeden durum hafızasında çalışırken "geliştirme için mükemmel", sıcak yeniden yükleme sınıfları gibi bir şey olacaktır.
nurettin

2
npm install [--save-dev | -D] nodemonkurulumu proje kapsamıyla sınırlandırmak için kullanın .
themefield

312

düğüm süpervizörü harika

Kaydetme sırasında yeniden başlatmak için kullanım:

npm kurulum süpervizörü -g
amir app.js

isaacs tarafından - http://github.com/isaacs/node-supervisor


3
npm kurulum -g amiri. Global olarak kurulmalıdır.
Kamal Reddy

OSx 10.2.8'de sudo ile çalıştırmak zorunda kaldım
Timopheym

2
Windows altında bu şekilde çalıştırmak zorunda kaldım:"C:\Program Files\nodejs\node.exe" C:\Users\Mark\AppData\Roaming\npm\node_modules\supervisor\lib\cli-wrapper.js app.js
0

1
olmadan -g veya uygulama kök Sudo: npm install supervisor, node node_modules/supervisor/lib/cli-wrapper.js app.js(I düğüm kök olmayan bir yükleme vardır)
h-Kippo

1
@Mark Bu, düğümün sizin içinizde olmadığı anlamına gelirPATH
Blaise

88

basit bir yol buldum:

delete require.cache['/home/shimin/test2.js']

7
Uygulamayı yeniden başlatmadan harici kütüphaneleri yeniden yüklemek istiyorsanız bu harika - benim durumumda bir IRC botu.
Michelle Tilley

Bu mükemmel! Çok basit ve çok iyi çalışıyor. Ne zaman bir istek geldiğinde ben sadece durumu olmayan bir grup dosyanın önbelleğini kaldırmak.
vaughan

16
delete require.cache[require.resolve('./mymodule.js')]; gerçek yollar ile anlaşma çözmek
Eduardo

Bu "kötü uygulama" veya "yalnızca geliştirme" için güvenli midir?
jocull

2
o sınıfları ve fonksiyonları ya da her türlü ihracatını yeniden oluşturabilir beri birlikte karşılaştırırken farklı referanslar sonuçlanan, bunun güvenli olduğunu sanmıyorum @jocull===
Kroltan

20

Birisi hala bu soruya gelir ve sadece standart modülleri kullanarak çözmek istiyorsa, basit bir örnek verdim:

var process = require('process');
var cp = require('child_process');
var fs = require('fs');

var server = cp.fork('server.js');
console.log('Server started');

fs.watchFile('server.js', function (event, filename) {
    server.kill();
    console.log('Server stopped');
    server = cp.fork('server.js');
    console.log('Server started');
});

process.on('SIGINT', function () {
    server.kill();
    fs.unwatchFile('server.js');
    process.exit();
});

Bu örnek yalnızca bir dosya içindir (server.js), ancak bir dizi dosya, tüm dosya adlarını almak için bir for döngüsü kullanarak veya bir dizini izleyerek birden çok dosyaya uyarlanabilir:

fs.watch('./', function (event, filename) { // sub directory changes are not seen
    console.log(`restart server`);
    server.kill();
    server = cp.fork('server.js');    
})

Bu kod Node.js 0.8 API için yapılmıştır, bazı özel ihtiyaçlara uyarlanmamıştır, ancak bazı basit uygulamalarda çalışacaktır.

GÜNCELLEME: Bu işlev, simpleR , GitHub repo modülümde uygulandı


1
Bu harika ve basit bir çözüm. Ben sadece bir moderatör tarafından söylendi git kendini güncellemek gerekiyordu bir bot için kullanılır. Sorun, uygulamanın içine girdiğinizde kendinizi yeniden başlatamamanızdı. Bununla birlikte, botun bir örneğini oluşturmak ve bir dotfile izlemek için yönteminizi kullanabilirim. Bot daha sonra kendini günceller, nokta dosyasına dokunur ve başlatıcı tarafından otomatik olarak yeniden başlatılır. Müthiş!
Fred

@Fred bunu duyduğuma sevindim :) Bu çözümü bir modülde uygulayacağım, yakında sanırım, işlevselliğini nasıl genişleteceğime dair daha fazla fikrim var
micnic

Dosya watchgerekli değilse, fsfarklı sinyal dinleyerek yeniden yükleme yapılabilir .
Vladimir Vukanac

18

nodemon bir google aramada ilk geldi ve hile yapıyor gibi görünüyor:

npm install nodemon -g
cd whatever_dir_holds_my_app
nodemon app.js

8

Yükleyebileceğiniz Node-Supervisor var

npm install supervisor

bkz. http://github.com/isaacs/node-supervisor


2
Daha çok, çökmesi durumunda sunucuyu yeniden başlatmakla ilgilidir. düğüm süpervizörü, izlenen dosyalar değiştirildiğinde tüm süreci yeniden başlatır. Katı anlamda sıcak yeniden yükleme değildir.
nalply

Gerçekten sıcak yükleme olmasa da, yalnızca geliştirme sırasında kodun otomatik olarak yüklenmesini istiyorsanız, bu nedenle her değişiklikten sonra komut satırında düğümü yeniden başlatmanız gerekmez.
Derek Dahmer

7

Düzenleme: Cevabım eski. Node.js çok hızlı değişen bir teknolojidir.

Ben de merak ettim Modülleri yeniden yüklemeyi . Node.js'yi değiştirdim ve kaynağı nalply / node adresindeki Github'da yayınladım . Tek fark fonksiyon require. İsteğe bağlı ikinci bir argümanı vardır reload.

require(url, reload)

app.jsGeçerli dizine yeniden yüklemek için

app = require("./app", true);

Bunun gibi bir şey yazın ve otomatik yeniden yüklemeniz var:

process.watchFile(script_name, function(curr, prev) {
    module = reload(script_name, true);
});

Gördüğüm tek sorun değişken module , ama şimdi üzerinde çalışıyorum.


7

nodemonharika. Hata ayıklama ve izleme seçenekleri için daha fazla parametre ekliyorum.

package.json

  "scripts": {
    "dev": "cross-env NODE_ENV=development nodemon --watch server --inspect ./server/server.js"
  }

Komuta: nodemon --watch server --inspect ./server/server.js

Buna karşılık:

--watch serverUygulamayı yeniden başlatın değiştirirken .js, .mjs, .coffee, .litcoffee, ve .jsondosyalarıserver klasöründe (alt klasörleri dahil).

--inspect Uzaktan hata ayıklamayı etkinleştir.

./server/server.js Giriş noktası.

Ardından, aşağıdaki yapılandırmayı launch.json(VS Kodu) öğesine ekleyin ve istediğiniz zaman hata ayıklamaya başlayın.

{
    "type": "node",
    "request": "attach",
    "name": "Attach",
    "protocol": "inspector",
    "port": 9229
}

nodemonProjenin geliştirici bağımlılığı olarak yüklenmenin daha iyi olduğunu unutmayın . Bu yüzden ekip üyelerinizin yüklemesi veya komut argümanlarını hatırlaması gerekmez, sadece npm run devhacklemeye başlarlar.

nodemonDokümanlar hakkında daha fazla bilgi edinin : https://github.com/remy/nodemon#monitoring-multiple-directories


Globbing, nodemon'un son sürümleri için desteklenmemektedir (en azından 1.19.0). Bunun yerine nodemon --watch sunucusu --inspect ./server/server.js dosyasını kullanın.
Alex

Bilginiz için @Alex'e teşekkürler. Yanıt güncellendi.
Ninh Pham

5

Son Orada iplik node.js posta listesinde bu konuda. Kısa cevap hayır, şu anda gerekli dosyaları otomatik olarak yeniden yüklemek mümkün değil, ancak birkaç kişi bu özelliği ekleyen yamalar geliştirdi.


1
+1 Evet. Tartışmaya katıldım. Çözümümün çok basit olduğunu itiraf ettim. Yalnızca sıcak modülün kendisi için başka modül gerektirmiyorsa çalışır. Felix'in çözümü daha iyi düşünülmüş ancak otomatik yeniden yükleme gerçekten çekirdeğe aitse tartışılıyor .
nalply

5

yine de bu sorun için başka bir çözüm sonsuza dek kullanmaktır

Forever'ın bir başka yararlı özelliği de, herhangi bir kaynak dosya değiştiğinde uygulamanızı isteğe bağlı olarak yeniden başlatabilmesidir. Bu, her özellik eklediğinizde veya bir hatayı düzelttiğinizde manuel olarak yeniden başlatmanıza gerek kalmaz. Forever'ı bu modda başlatmak için -w bayrağını kullanın:

forever -w start server.js

Garip bir şekilde -w bayrağıyla benim express.js uygulamam CSS kullanmıyor.
Costa

5

node-dev harika çalışıyor. npminstall node-dev

Sunucu yeniden yüklendiğinde bile bir masaüstü bildirimi verir ve mesajda başarı veya hata verir.

uygulamanızı komut satırında şununla başlatın:

node-dev app.js


3

İşte Hot Reloading for Node hakkında bir blog yazısı. Hot Reloading'i etkinleştirmek için Node kurulumunu değiştirmek için kullanabileceğiniz bir github Node dalı sağlar.

Blogdan:

var requestHandler = require('./myRequestHandler');

process.watchFile('./myRequestHandler', function () {
  module.unCacheModule('./myRequestHandler');
  requestHandler = require('./myRequestHandler');
}

var reqHandlerClosure = function (req, res) {
  requestHandler.handle(req, res);
}

http.createServer(reqHandlerClosure).listen(8000);

Şimdi, myRequestHandler.js dosyasını her değiştirdiğinizde, yukarıdaki kod yerel requestHandler öğesini fark edecek ve yeni kodla değiştirecektir. Mevcut tüm istekler eski kodu kullanmaya devam ederken, yeni gelen istekler yeni kodu kullanır. Tüm bunlar sunucuyu kapatmadan, herhangi bir isteği zıplatmadan, herhangi bir isteği zamanında öldürmeden, hatta akıllı bir yük dengeleyicisine güvenmeden.


Bu çözümle ilgili tek şey, Düğümün eski bir sürümünün bir çatal olması, bu yüzden kullanmadan önce en son sürümle karıştırılması ve birleştirilmesi gerekecek (Düğümün eski bir sürümünü kullanmayı düşünmüyorsanız).
Chetan

3

Ben-irade modülleri yüklemek / kaldırmak mümkün oldukça küçük bir düğüm "şey" yapma üzerinde çalışıyorum (yani, yani tüm uygulamayı aşağı indirmeden uygulamanızın bir bölümünü yeniden başlatmak mümkün olabilir). Ben (çok aptal) bir bağımlılık yönetimi dahil, böylece bir modülü durdurmak istiyorsanız, buna bağlı tüm modüller de durdurulacak.

Şimdiye kadar çok iyi, ama sonra bir modülün nasıl yeniden yükleneceği konusuna rastladım. Görünüşe göre, sadece modül "gerektirir" önbellekten kaldırmak ve işi bitmiş olabilir. Doğrudan düğüm kaynak kodunu değiştirmek için istekli değilim, ben çok hacky-hack ile geldi : yani "izleme" fonksiyonuna son çağrı, yığın "önbellek" alanına bir referans kapmak ve..iyi, düğüme yapılan başvuruyu silin:

    var args = arguments
    while(!args['1'] || !args['1'].cache) {
        args = args.callee.caller.arguments
    }
    var cache = args['1'].cache
    util.log('remove cache ' + moduleFullpathAndExt)
    delete( cache[ moduleFullpathAndExt ] )

Aslında daha da kolay:

var deleteCache = function(moduleFullpathAndExt) {
  delete( require.cache[ moduleFullpathAndExt ] )
}

Görünüşe göre, bu iyi çalışıyor. Bu argümanların [1] ne anlama geldiğine dair hiçbir fikrim yok, ama işini yapıyor. Düğüm adamlarının bir gün yeniden yükleme tesisi kuracağına inanıyorum, bu yüzden şimdilik bu çözümün de kabul edilebilir olduğunu düşünüyorum. (btw. "şeyim" burada olacak: https://github.com/cheng81/wirez , birkaç hafta içinde oraya git ve neden bahsettiğimi görmelisin)


... tabii ki o kadar basit değil. Eğer bu sadece çalışır yoktur çağrı yığını gerektirecek bir çağrı. Oh, bir hack üstüne kolay kesmek: geçici bir senaryoda bu şeyleri yazın ve çalışma zamanında gerektirir. Yaptı, işe yarıyor ... ve hatta önbellekten kendini
temizliyor

Ve aslında daha kolaydı: delete (requir.cache [moduleFullpathAndExt])
cheng81

Node.js modülleri aslında modül kapsüllemesinin nasıl yapıldığı anonim bir işleve sarılır. Her modül aslında benziyor function (module, require) { /* your code */ }. Eğer bunu göz önüne aldığımızda, arguments[1]işaret require. While döngüsü, bunu bir modüldeki başka bir işlev içinden çağırdığınız durumlar için vardır (sadece işlev hiyerarşisine gider ve her birine iletilen bağımsız değişken değerlerini kontrol eder).
JK

3

Sen kullanabilirsiniz nodemon gelen NPM . Ekspres oluşturucuyu kullanıyorsanız, bu komutu proje klasörünüzün içinde kullanabilirsiniz:

nodemon npm start

veya Hata Ayıklama modunu kullanma

DEBUG=yourapp:* nodemon npm start

ayrıca doğrudan koşabilirsiniz

nodemon your-app-file.js

Umarım bu yardım.


1

çözüm: http://github.com/shimondoodkin/node-hot-reload

kullanılan referansları kendiniz dikkate almanız gerektiğini unutmayın.

yani bunu yaptıysanız: var x = requir ('foo'); y = x; z = x.bar; ve sıcak yeniden yükledi.

x, y ve z'de saklanan referansları değiştirmeniz gerektiği anlamına gelir. sıcak yeniden yükle geri arama işlevinde.

bazı insanlar otomatik yeniden başlatma ile sıcak yeniden yükleme karıştırmayın benim nodejs-autorestart modülü de açılışta otomatik başlatmayı etkinleştirmek için uptart entegrasyonu vardır. küçük bir uygulamanız varsa otomatik yeniden başlatma iyidir, ancak büyük bir uygulamanız olduğunda sıcak yeniden yükleme daha uygundur. çünkü sıcak yeniden yükleme daha hızlıdır.

Ayrıca düğüm giriş modülümü de seviyorum.


1

Nodemon veya bunun gibi diğer araçları kullanmak gerekli değildir . Sadece IDE'nizin yeteneklerini kullanın.

Muhtemelen en iyisi node.js için sıcak yeniden yükleme özelliğine (otomatik sunucu ve tarayıcı yeniden yükleme) sahip IntelliJ WebStorm'dur .


1

İşte Windows'da kullanım için düşük teknoloji ürünü bir yöntem. Bunu şu adlı bir toplu iş dosyasına koyun serve.bat:

@echo off

:serve
start /wait node.exe %*
goto :serve

Şimdi node app.jscmd kabuğundan koşmak yerine koşserve app.js .

Bu, sunucuyu çalıştıran yeni bir kabuk penceresi açar. Toplu iş dosyası (çünkü /wait) kabuk penceresini kapatana kadar engeller , özgün cmd kabuğu "Toplu işi sonlandır (E / H)?" "N" yanıtını verirseniz, sunucu yeniden başlatılır.

Sunucuyu her yeniden başlatmak istediğinizde, sunucu penceresini kapatın ve cmd kabuğunda "N" yanıtını verin.


1

benim uygulama yapısı:

NodeAPP (folder)
   |-- app (folder)
      |-- all other file is here
   |-- node_modules (folder)
   |-- package.json
   |-- server.js (my server file)

ilk önce bu komutla yeniden yükle :

npm install [-g] [--save-dev] reload

sonra package.json dosyasını değiştirin :

"scripts": {
    "start": "nodemon -e css,ejs,js,json --watch app"
}

şimdi sunucu dosyanızda yeniden yüklemeyi kullanmalısınız :

var express = require('express');
var reload = require('reload');
var app = express();

app.set('port', process.env.PORT || 3000);

var server = app.listen(app.get('port'), function() {
    console.log( 'server is running on port ' + app.get('port'));
});

reload(server, app);

ve son değişiklik için, yanıtınızın sonu şu komut dosyasını gönderin :

<script src="/reload/reload.js"></script>

şimdi uygulamanızı şu kodla başlatın:

npm start

Bu yaklaşım işe yaramaz, ancak npmjs.com/package/reload (Express uygulamaları için) 'de gösterilen yaklaşımlar işe yarar .
Maxie Berkmann

0

Bunu kullan:

function reload_config(file) {
  if (!(this instanceof reload_config))
    return new reload_config(file);
  var self = this;

  self.path = path.resolve(file);

  fs.watchFile(file, function(curr, prev) {
    delete require.cache[self.path];
    _.extend(self, require(file));
  });

  _.extend(self, require(file));
}

Şimdi tek yapmanız gereken:

var config = reload_config("./config");

Ve config otomatik olarak yeniden yüklenecek :)


Düğümün parçası olmayan bir çerçeveye dayanmayan bir sürümünüz var mı?
Adrian

0

loaddir, bir dizinin tekrar tekrar yüklenmesi için benim çözümümdür.

dönebilir

{ 'path/to/file': 'fileContents...' } veya { path: { to: { file: 'fileContents'} } }

Vardır callback dosya değiştirildiğinde çağrılacak olan.

Dosyaların watchyazılmadan önce çağrılabilecek kadar büyük olduğu durumları işler .

Bir yıldır projelerde kullanıyorum ve yakın zamanda sözler ekledim.

Savaşmama yardım et!

https://github.com/danschumann/loaddir


0

Sunucuyu kapatmadan modülü yeniden yüklemek için otomatik yeniden yükleme özelliğini kullanabilirsiniz.

Yüklemek

npm install auto-reload

misal

Data.JSON

{ "name" : "Alan" }

test.js

var fs = require('fs');
var reload = require('auto-reload');
var data = reload('./data', 3000); // reload every 3 secs

// print data every sec
setInterval(function() {
    console.log(data);
}, 1000);

// update data.json every 3 secs
setInterval(function() {
    var data = '{ "name":"' + Math.random() + '" }';
    fs.writeFile('./data.json', data);
}, 3000);

Sonuç:

{ name: 'Alan' }
{ name: 'Alan' }
{ name: 'Alan' }
{ name: 'Alan' }
{ name: 'Alan' }
{ name: '0.8272748321760446' }
{ name: '0.8272748321760446' }
{ name: '0.8272748321760446' }
{ name: '0.07935990858823061' }
{ name: '0.07935990858823061' }
{ name: '0.07935990858823061' }
{ name: '0.20851597073487937' }
{ name: '0.20851597073487937' }
{ name: '0.20851597073487937' }

0

Başka bir basit çözüm, requir yerine fs.readFile kullanmaktır bu nesneyi yeniden bir json nesnesi contaning bir metin dosyası kaydedebilirsiniz ve sunucudaki bir aralık oluşturun.

Artıları:

  • harici libs kullanmaya gerek yok
  • üretim için uygun (değiştirildiğinde yapılandırma dosyasını yeniden yükleme)
  • uygulaması kolay

Eksileri:

  • bir modülü yeniden yükleyemezsiniz - yalnızca anahtar / değer verisi içeren bir json

0

Vagrant ve PHPStorm kullanan kişiler için dosya izleyici daha hızlı bir yaklaşımdır

  • hemen kaydetme komutunu çalıştırmak için dosyaların hemen senkronizasyonunu devre dışı bırakın, ardından * .js dosyaları ve çalışma dizinleri için bir kapsam oluşturun ve bu komutu ekleyin

    vagrant ssh -c "/var/www/gadelkareem.com/forever.sh yeniden başlatma"

sonsuza dek nerede. sh gibi

#!/bin/bash

cd /var/www/gadelkareem.com/ && forever $1 -l /var/www/gadelkareem.com/.tmp/log/forever.log -a app.js

0

Geçenlerde bu soruya geldim çünkü olağan şüpheliler bağlantılı paketlerle çalışmıyordu. Benim gibiyseniz ve npm linkgeliştirme sırasında birçok paketten oluşan bir proje üzerinde etkili bir şekilde çalışmak için yararlanıyorsanız, bağımlılıklarda meydana gelen değişikliklerin de yeniden yüklemeyi tetiklemesi önemlidir.

Düğüm-mon ve pm2'yi denedikten sonra, düğüm_modülleri klasörünü ek olarak izlemek için yönergelerini izleseler bile, yine de değişiklikleri almamışlardır. Buradaki cevaplarda bazı özel çözümler olmasına rağmen, bunun gibi bir şey için ayrı bir paket daha temizdir. Ben rastladım düğüm-dev , bugün ve herhangi seçenekler veya yapılandırma olmadan mükemmel çalışıyor.

Benioku Dosyasından:

Süpervizör veya nodemon gibi araçların aksine, izlenecek dosyalar için dosya sistemini taramaz. Bunun yerine, yalnızca gerçekten gerekli olan dosyaları izlemek için Düğüm'ün requir () işlevine bağlanır.


0
const cleanCache = (moduleId) => {
    const module = require.cache[moduleId];
    if (!module) {
        return;
    }
    // 1. clean parent
    if (module.parent) {
        module.parent.children.splice(module.parent.children.indexOf(module), 1);
    }
    // 2. clean self
    require.cache[moduleId] = null;
};

0

Tarayıcı yenileme ile yapabilirsiniz . Düğüm uygulamanız otomatik olarak yeniden başlatılır, tarayıcıdaki sonuç sayfanız da otomatik olarak yenilenir. Dezavantajı, oluşturulan sayfaya js snippet'i koymanız gerektiğidir. İşte çalışma örneği için repo .

const http = require('http');
const hostname = 'localhost';
const port = 3000;

const server = http.createServer((req, res) => {
    res.statusCode = 200;
    res.setHeader('Content-Type', 'text/html; charset=UTF-8');
    res.write('Simple refresh!');
    res.write(`<script src=${process.env.BROWSER_REFRESH_URL}></script>`);
    res.end();
})

server.listen(port, hostname, () => {
    console.log(`Server running at http://${hostname}:${port}/`);

    if (process.send) {
        process.send({ event: 'online', url: `http://${hostname}:${port}/` })
    }

});

0

Ben pm2 denedim : kurulum da kullanımı kolay ve kolaydır; sonuç tatmin edicidir. Ancak, istediğimiz pm2 sürümüne dikkat etmeliyiz. pm 2 çalışma zamanı ücretsiz sürümdür, pm2 plus ve pm2 kurumsal ücretsiz değildir.

Gelince Strongloop , benim yükleme başarısız ya da ben bunu kullanamadı böylece tam değildi.


-1

Günümüzde sıcak seçenekli WebPack dev sunucusu kullanılmaktadır. paketinize böyle bir komut dosyası ekleyebilirsiniz. json:"hot": "cross-env NODE_ENV=development webpack-dev-server --hot --inline --watch-poll",

ve dosyalarınızdaki her değişiklik otomatik olarak yeniden derlemeyi tetikler


2
Bu cevap soru yanlıştır. Webpack ön uç uygulamaları içindir ve dev sunucusu kendi başına bir web sunucusudur. Soru, Düğümde uygulanan bir sunucu uygulamasına işaret ediyordu. Bir web sunucusuna ihtiyaç duymaz. Zaten bir tane.
DanielKhan
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.