Ich arbeite an einem kleinen Node-Projekt und ich benutze Coffeescript und weniger für clientseitige Code. Ich versuche, meine Entwicklungsumgebung mit Grunt einzurichten. Ich habe für die Ausführung von Server wie folgt benutzerdefinierte Grunzen Aufgabe implementiert:Ausführen von 2 asynchronen Aufgaben mit Grunt
start = require './start' #just a function to start express.js application
grunt.registerTask 'server', 'Starting server', ->
grunt.log.write 'Preparing server to start'
done = do @async
start (err) ->
grunt.log.write "server running at localhost:4000"
Ich möchte auch die "watch" Task ausgeführt mit Grunzen-contrib-Uhr-Plugin:
grunt.initConfig
watch:
coffee:
files: ['public/coffee/**/*.coffee']
tasks: ['coffee']
jade:
files: ['public/jade/**/*.jade']
tasks: ['jade']
less:
files: ['public/less/**/*.less']
tasks: ['less']
Die Frage ist: Wie um diese beiden Aufgaben (Watch und Server) gleichzeitig laufen zu lassen? Ich möchte einen Server laufen lassen und ihn nicht jedes Mal neu laden, wenn ein clientseitiger Code geändert wird. Vielen Dank im Voraus
Das funktioniert nicht, weil der Server-Task nicht beenden und somit niemals die Kontrolle an die Überwachungsaufgabe zurückgeben. – Griffin
Ja, es endet; Wie ich in meiner Antwort erkläre, entfernen Sie den async() -Aufruf, mit dem die Aufgabe beendet werden kann, und fügen ihn dann aufgrund einer Option bedingt zurück. – tbranyen
Ich bin verwirrt. Er möchte, dass der Server immer lang läuft, und er möchte, dass die Uhr lange läuft und er möchte, dass beide gleichzeitig von einem einzigen Grunzruf ausgehen. Ist das, was du hier erreichst? Sieht nicht so aus –