Node.js рдкрд░ LiveReload

рдпрд╣ рдХреНрдпрд╛ рд╣реИ


LiveReload рдПрдХ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рд╕рд░реНрд╡рд░ рдкрд░ рдЕрдкрдирд╛ рдХреЛрдб рдФрд░ рд╕рдВрд╕рд╛рдзрди (html, css, js, images рдЗрддреНрдпрд╛рджрд┐) рдмрджрд▓рддреЗ рд╕рдордп рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдкреГрд╖реНрда рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, LiveReload рдЖрдкрдХреЛ рдкреГрд╖реНрда рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓реЛрдб рдХрд┐рдП рдмрд┐рдирд╛ рд╕реАрдПрд╕рдПрд╕ рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред


рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ?


рдЖрд╡реЗрджрди рдХреЗ рдЧреНрд░рд╛рд╣рдХ рднрд╛рдЧ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдФрд░ рдЕрдзрд┐рдХ рдирд╣реАрдВред рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдкреГрд╖реНрда рдкрд░ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ:
рд╡реЗрдм рдбреЗрд╡рд▓рдкрд░ рд╡рдВрдбрд░рд▓реИрдВрдб (рдПрдХ рдЦреБрд╢ рднреВрдорд┐ рдЬрд╣рд╛рдВ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рд░реАрдлрд╝реНрд░реЗрд╢ рдмрдЯрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ)


рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?


рд╕рд┐рджреНрдзрд╛рдВрдд рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ, рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдореЗрдВ рдПрдХ рд╕рд░реНрд╡рд░ рдФрд░ рдПрдХ рдЧреНрд░рд╛рд╣рдХ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
  1. рд╕рд░реНрд╡рд░: рд╡реЗрдмрд╕реЙрдХреЗрдЯ рдЬреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рдмрджрд▓рд╛рд╡реЛрдВ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рддрд╛ рд╣реИ рдФрд░ рдпрджрд┐ рдРрд╕реЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ
  2. рдЧреНрд░рд╛рд╣рдХ, рдХрдИ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ:
    • рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдРрдб-рдСрди рдЙрд╕ рдкреГрд╖реНрда рдХреЛ рддрд╛рдЬрд╝рд╛ рдХрд░рддрд╛ рд╣реИред
    • рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реНрдирд┐рдкреЗрдЯ рдЬреЛ рд╡реЗрдмрд╕реНрдХреЗрдЯ рд╕рд░реНрд╡рд░ рдХреЛ рд╕реБрдирддрд╛ рд╣реИ рдФрд░ рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рдкреГрд╖реНрда рдХреЛ рддрд╛рдЬрд╝рд╛ рдХрд░рддрд╛ рд╣реИред рдЗрд╕реЗ рдЖрдкрдХреА HTML рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдбрд╛рд▓рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред



Node.js, рд╣реБрд╣?


рдпрджрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА Node.js рдпрд╛ Grunt.js рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдпрд╛ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдПрдХ LiveReload рд╡рд┐рдзрд┐ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд╕рднреА рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдкрд░ рдХрд╛рдо рдХрд░реЗ (LiveReload рдХреЛ Windows рдФрд░ Linux рдФрд░ MacOS X рджреЛрдиреЛрдВ рдкрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╡рд┐рдзрд┐ рд╣рд░ рдЬрдЧрд╣ рдЕрд▓рдЧ рд╣реИ) рддреЛ рдЖрдк рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдШреБрд░рдШреБрд░рд╛рдирд╛-рдкреБрдирдГ рд▓реЛрдбред
рддреЛ рдпрд╣рд╛рдБ рдЖрдк рдХреА рдЬрд░реВрд░рдд рд╣реИ:
  1. Node.js. рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Ubunt рдкрд░, рдЗрд╕реЗ рдбрд╛рд▓реЗрдВ:
    sudo apt-get install nodejs npm 

  2. Grunt.js
      sudo npm install -g grunt 

  3. рдЧреНрд░рдиреНрдЯ рдкреНрд▓рдЧрдЗрди рдЧреНрд░рдиреНрдЯ-рд░реАрд▓реЛрдб
      npm install grunt-reload --save-dev 



рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╡рд░реНрдгрд┐рдд рджреЛ рд▓рд┐рд╡рд░реЗрд▓рдб рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЧреНрд░рдВрдЯ-рд░реАрд▓реЛрдб рдкреНрд▓рдЧрдЗрди рдореЗрдВ рдХреБрдЫ рдФрд░ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ:
  1. рдкреНрд░реЙрдХреНрд╕реА: рдПрдХ рд╕рд░реНрд╡рд░ рдмрдирд╛рддрд╛ рд╣реИ рдЬреЛ рдкреНрд░реЙрдХреНрд╕реА рдХреЛ рджреЗрд╡ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рдХрд░реЗрдЧрд╛ред рд╕рд░реНрд╡рд░ HTML рд╕реНрдирд┐рдкреЗрдЯ рдХреЛ рд▓рд┐рд╡рд░реЗрд▓рдб HTML рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рд▓реАрд╡рд░реЛрд▓реИрдб рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП HTML рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред
  2. iFrame: рдкрд┐рдЫрд▓реА рдкрджреНрдзрддрд┐ рдХреЗ рд╕рдорд╛рди, рдХреЗрд╡рд▓ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕реНрдирд┐рдкреЗрдЯ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдпрд╣ рдПрдХ iFrame рдореЗрдВ рдкреГрд╖реНрда рдЦреЛрд▓рддрд╛ рд╣реИ, рдЬреЛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдиреЗ рдкрд░ рдЙрдиреНрд╣реЗрдВ рдкреБрдирдГ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИред рдФрд░ рдЖрдкрдХрд╛ html рд╕рд╛рдл рд░рд╣реЗрдЧрд╛ !;;

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЧреНрд░рдВрдЯ-рд░реАрд▓реЛрдб рдкреВрд░реЗ рдкреГрд╖реНрда рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓реЛрдб рдХрд┐рдП рдмрд┐рдирд╛ рд╕реАрдПрд╕рдПрд╕ рдФрд░ рдЬреЗрдПрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ, рдпрд╣ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ LiveReload рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИред


рдХреИрд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ


рд╣рдо рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рддреЗ рд╣реИрдВ, рд░реВрдЯ рдореЗрдВ grunt.js рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рд╡реЙрдЪ рдЯрд╛рд╕реНрдХ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддреЗ рд╣реИрдВ (рдпрд╣ рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рдмрджрд▓рд╛рд╡реЛрдВ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░реЗрдЧрд╛) рдФрд░ рдлрд┐рд░ рд╕реЗ рд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░реНрдп (рд╣рдо рдлрд╛рдЗрд▓ рдмрджрд▓рддреЗ рд╕рдордп рд▓рд┐рд╡рд░реЗрд▓реИрдб рдмрдирд╛рддреЗ рд╣реИрдВ)ред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЗрд╕ рддрд░рд╣ рдХреА рдПрдХ рдПрдХреНрд╕рдкреНрд░реЗрд╕ .js рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИ:
/ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ - рд╕реНрдЯреЗрдЯрд┐рдХреНрд╕ (рд╕реАрдПрд╕рдПрд╕, рдЪрд┐рддреНрд░, рдЬреЗрдПрд╕, рдЯреЗрдореНрдкреНрд▓реЗрдЯ, рдЖрджрд┐)
app.js - express.js рдЖрд╡реЗрджрди
grunt.js - рдЧреНрд░рдВрдЯрдлрд╛рдЗрд▓

grunt.js рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

 module.exports = function(grunt) { grunt.loadNpmTasks('grunt-bg-shell'); //  grunt-reload grunt.loadNpmTasks('grunt-reload'); // Project configuration. grunt.initConfig({ bgShell: { //    supervisor'a //     //   supervisor: { cmd: 'supervisor app.js', stdout: true, stderr: true, bg: true } }, // reload //    localhost:3000 //  localhost:6001        LiveReload reload: { port: 6001, proxy: { host: 'localhost', port: 3000 }, }, watch: { //        'reload' files: [ //add here static file which need to be livereloaded 'public/styles/**/*.css', 'public/scripts/**/*.js', 'public/images/**/*', ], tasks: 'reload' } }); //  //reload       grunt.registerTask('server', 'bgShell:supervisor reload watch'); }; 


рдЕрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рд░реВрдЯ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рд╕реЗ рдЖрдк рдХрдорд╛рдВрдб рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ
 grunt server 

рдФрд░ рд╕реНрдерд╛рдиреАрдпрд╣реЛрд╕реНрдЯ рдкрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкреБрдирд░рд╛рд░рдВрдн рд╕рд░реНрд╡рд░ рдФрд░ LiveReload рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ: 6001

рдпрд╣ рдЧреНрд░рдВрдЯрдлрд╛рдЗрд▓ рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ рдкреИрдХреЗрдЬ (рд╕рд░реНрд╡рд░ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХреЗ рд▓рд┐рдП) рдФрд░ рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЧреНрд░рдиреНрдЯ-рдмреАрдЬреА-рд╢реЗрд▓ рдкреИрдХреЗрдЬ рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ
  sudo npm install -g supervisor npm install grunt-bg-shell --save-dev 

Source: https://habr.com/ru/post/In168091/


All Articles