Я настраиваю Gruntfile, в котором пытаюсь:
- Скомпилируйте некоторые coffeescript в javascript для клиентской стороны.
- Следите за изменениями в coffeescript, который должен быть скомпилирован в javascript для клиентской части.
- Следите за изменениями в файлах coffeescript бэкэнда (сервера) и перезапускайте приложение coffee, когда изменения будут обнаружены.
У меня есть первые два шага, использующие это:
module.exports = (grunt) ->
grunt.initConfig
pkg: grunt.file.readJSON 'package.json'
coffee:
compile:
expand: true
flatten: true
cwd: 'public/src'
src: ['*.coffee']
dest: 'public/dist'
ext: '.js'
watch:
coffee:
files: ['public/src/*.coffee']
tasks: ['coffee']
grunt.loadNpmTasks 'grunt-contrib-coffee'
grunt.loadNpmTasks 'grunt-contrib-watch'
grunt.registerTask 'default', ['coffee', 'watch']
Но я не уверен, как сделать третий шаг.
Структура каталогов в настоящее время выглядит следующим образом:
app
lib.coffee
routes.coffee
public/
dist/
client.js
src/
client.coffee
Gruntfile.coffee
package.json
server.coffee
Как я могу отслеживать изменения чего-либо в каталоге приложения или в файле server.coffee и автоматически запускать сервер (например, «coffee server.coffee») с помощью grunt?
Кроме того, сервер использует экспресс - нужно ли перезапускать приложение, чтобы увидеть, был ли снова доступен порт перед запуском?