рдпрд╣ рдХреНрдпрд╛ рд╣реИ
LiveReload рдПрдХ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рд╕рд░реНрд╡рд░ рдкрд░ рдЕрдкрдирд╛ рдХреЛрдб рдФрд░ рд╕рдВрд╕рд╛рдзрди (html, css, js, images рдЗрддреНрдпрд╛рджрд┐) рдмрджрд▓рддреЗ рд╕рдордп рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдкреГрд╖реНрда рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, LiveReload рдЖрдкрдХреЛ рдкреГрд╖реНрда рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓реЛрдб рдХрд┐рдП рдмрд┐рдирд╛ рд╕реАрдПрд╕рдПрд╕ рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ?
рдЖрд╡реЗрджрди рдХреЗ рдЧреНрд░рд╛рд╣рдХ рднрд╛рдЧ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдФрд░ рдЕрдзрд┐рдХ рдирд╣реАрдВред рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдкреГрд╖реНрда рдкрд░ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ:
рд╡реЗрдм рдбреЗрд╡рд▓рдкрд░ рд╡рдВрдбрд░рд▓реИрдВрдб (рдПрдХ рдЦреБрд╢ рднреВрдорд┐ рдЬрд╣рд╛рдВ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рд░реАрдлрд╝реНрд░реЗрд╢ рдмрдЯрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ)
рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?
рд╕рд┐рджреНрдзрд╛рдВрдд рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ, рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдореЗрдВ рдПрдХ рд╕рд░реНрд╡рд░ рдФрд░ рдПрдХ рдЧреНрд░рд╛рд╣рдХ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
- рд╕рд░реНрд╡рд░: рд╡реЗрдмрд╕реЙрдХреЗрдЯ рдЬреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рдмрджрд▓рд╛рд╡реЛрдВ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рддрд╛ рд╣реИ рдФрд░ рдпрджрд┐ рдРрд╕реЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ
- рдЧреНрд░рд╛рд╣рдХ, рдХрдИ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ:
- рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдРрдб-рдСрди рдЙрд╕ рдкреГрд╖реНрда рдХреЛ рддрд╛рдЬрд╝рд╛ рдХрд░рддрд╛ рд╣реИред
- рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реНрдирд┐рдкреЗрдЯ рдЬреЛ рд╡реЗрдмрд╕реНрдХреЗрдЯ рд╕рд░реНрд╡рд░ рдХреЛ рд╕реБрдирддрд╛ рд╣реИ рдФрд░ рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рдкреГрд╖реНрда рдХреЛ рддрд╛рдЬрд╝рд╛ рдХрд░рддрд╛ рд╣реИред рдЗрд╕реЗ рдЖрдкрдХреА HTML рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдбрд╛рд▓рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
Node.js, рд╣реБрд╣?
рдпрджрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА Node.js рдпрд╛ Grunt.js рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдпрд╛ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдПрдХ LiveReload рд╡рд┐рдзрд┐ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд╕рднреА рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдкрд░ рдХрд╛рдо рдХрд░реЗ (LiveReload рдХреЛ Windows рдФрд░ Linux рдФрд░ MacOS X рджреЛрдиреЛрдВ рдкрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╡рд┐рдзрд┐ рд╣рд░ рдЬрдЧрд╣ рдЕрд▓рдЧ рд╣реИ) рддреЛ рдЖрдк рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдШреБрд░рдШреБрд░рд╛рдирд╛-рдкреБрдирдГ рд▓реЛрдбред
рддреЛ рдпрд╣рд╛рдБ рдЖрдк рдХреА рдЬрд░реВрд░рдд рд╣реИ:
- Node.js. рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Ubunt рдкрд░, рдЗрд╕реЗ рдбрд╛рд▓реЗрдВ:
sudo apt-get install nodejs npm
- Grunt.js
sudo npm install -g grunt
- рдЧреНрд░рдиреНрдЯ рдкреНрд▓рдЧрдЗрди рдЧреНрд░рдиреНрдЯ-рд░реАрд▓реЛрдб
npm install grunt-reload --save-dev
рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╡рд░реНрдгрд┐рдд рджреЛ рд▓рд┐рд╡рд░реЗрд▓рдб рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЧреНрд░рдВрдЯ-рд░реАрд▓реЛрдб рдкреНрд▓рдЧрдЗрди рдореЗрдВ рдХреБрдЫ рдФрд░ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ:
- рдкреНрд░реЙрдХреНрд╕реА: рдПрдХ рд╕рд░реНрд╡рд░ рдмрдирд╛рддрд╛ рд╣реИ рдЬреЛ рдкреНрд░реЙрдХреНрд╕реА рдХреЛ рджреЗрд╡ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рдХрд░реЗрдЧрд╛ред рд╕рд░реНрд╡рд░ HTML рд╕реНрдирд┐рдкреЗрдЯ рдХреЛ рд▓рд┐рд╡рд░реЗрд▓рдб HTML рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рд▓реАрд╡рд░реЛрд▓реИрдб рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП HTML рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред
- 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 server
рдФрд░ рд╕реНрдерд╛рдиреАрдпрд╣реЛрд╕реНрдЯ рдкрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкреБрдирд░рд╛рд░рдВрдн рд╕рд░реНрд╡рд░ рдФрд░ LiveReload рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ: 6001
рдпрд╣ рдЧреНрд░рдВрдЯрдлрд╛рдЗрд▓ рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ рдкреИрдХреЗрдЬ (рд╕рд░реНрд╡рд░ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХреЗ рд▓рд┐рдП) рдФрд░ рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЧреНрд░рдиреНрдЯ-рдмреАрдЬреА-рд╢реЗрд▓ рдкреИрдХреЗрдЬ рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ
sudo npm install -g supervisor npm install grunt-bg-shell --save-dev