рдЗрд╕рдХреА рдЬрд╛рджреБрдИ рдкреНрд░рдХреГрддрд┐ рд╕реЗ, рдХреЙрдлреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдХрдВрдкрд╛рдЗрд▓рд░ рдПрдХ рдХреЙрдлреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, CoffeeScript рд╕реНрд░реЛрдд рдкреИрдХреЗрдЬ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд░реЗрдбреА-рдЯреВ-рдпреВрдЬрд╝ js рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдФрд░ рдЕрдм рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рддрд╛ рд╣реВрдВ рдХрд┐ Node.js, Cygwin рдФрд░ Nant рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдЙрдиреНрд╣реЗрдВ рд╡рд┐рдВрдбреЛрдЬрд╝ рдореЗрдВ рдХреИрд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдП, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдХрд╛рдо рдирд╣реАрдВ рд╣реИред
рддреБрдо рдХреНрдпрд╛ рдЪрд╛рд╣рддреЗ рд╣реЛ?
рддреЛ, рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рд╕рд░рд▓ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╕рдВрд░рдЪрдирд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВрдЧреЗ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╣рдо рдХрд╛рдо рдХрд░реЗрдВрдЧреЗ:
рдкрд░рд┐рдпреЛрдЬрдирд╛ + --- рдХреЙрдлреА рдХреЗ рдЯреБрдХрдбрд╝реЗ | \ --- рд░реЛрд╕реНрдЯ.рдХреЛрдлреА + --- рдЬрд╛рд╡рд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ | --- рдЙрдкрдХрд░рдг | + --- рдХреЙрдлрд╝реА | + --- рд╕рд╛рдЗрдЧреНрд╡рд┐рдирд▓рд╛рдЗрдЯ | + --- NAnt | \ --- рдиреЛрдбреНрд╕ \ --- рд╕рдВрдХрд▓рди рдХрд░реЗрдВ
рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдореВрд▓ рдореЗрдВ
compile.bat
рдХреЛ рдЪрд▓рд╛рдиреЗ рдХрд╛ рд▓рдХреНрд╖реНрдп рд╣реИ, рдЬреЛ
CoffeScripts
рдлрд╝реЛрд▓реНрдбрд░ рд╕реЗ
JavaScripts
рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕рднреА рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдЧрд╛ред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдпрдХреНрд░рдо рдЗрд╕рд╕реЗ рд╣рдореЗрдВ рдорджрдж рдХрд░реЗрдВрдЧреЗ:
- рдХреЙрдлрд╝реАрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреИрдХреЗрдЬ рд╣реА;
- рдХреЙрдлреА рд╕рдВрдХрд▓рдХ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП Node.js;
- рдПрдХ рдпреВрдирд┐рдХреНрд╕ рджреГрд╢реНрдп рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓ рдкрде рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рдЗрдЧрд╡рд┐рди-рд▓рд╛рдЗрдЯ;
- рдЗрд╕ рд╕рднреА рджрд▓рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдирд╛рдиреНрдЯ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдкреНрд░рдгрд╛рд▓реА рд╣реИред
рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд░рд▓ рдХреЙрдлреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ "
roast.coffee
" рдХрд╛ рд╕рдВрдХрд▓рди рдХрд░реЗрдВрдЧреЗ:
рд░реЛрд╕реНрдЯ = (рдХреНрдпрд╛) -> "рднреБрдирд╛ рд╣реБрдЖ # {рдХреНрдпрд╛}" рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ рд░реЛрд╕реНрдЯ 'рдХреЙрдлреА!'
CoffeeScript
рдкреИрдХреЗрдЬ рдХрд╛ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдЧрд┐рдердм рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдирд┐рдореНрди рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреНрд▓реЛрди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
git рдХреНрд▓реЛрди http://github.com/jashkenas/cfish-script.git
CoffeeScript \ bin рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рджреЛ js рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рд╣реИрдВ: рдХреЗрдХ рдФрд░ рдХреЙрдлреАред рдХреЗрдХ, рдХреЙрдлреАрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд▓рд┐рдЦрд┐рдд рдФрд░ рд░реЗрдХ рдЬреИрд╕реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдгрд╛рд▓реА рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред рдХреЙрдлреА js рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЙрдлреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрдВрдкрд╛рдЗрд▓рд░ рд╣реИред рдпрд╣реА рд╣рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
Node.js
рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рд▓рд┐рдП рдиреЛрдб.рдЬреЗрдПрд╕ рдХреА рдмрд╛рдЗрдирд░реА рдЕрд╕реЗрдВрдмрд▓реА рдЕрдм рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рдорд┐рд▓ рд╕рдХрддреА рд╣реИред рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЗрд╕ рд╕рд╛рдЗрдЯ рд╕реЗ рд╕рдВрд╕реНрдХрд░рдг 0.2.2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред
рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕ рдХрджрдо рдкрд░, рдЖрдк рдХреЙрдлреА рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдорд╛рди рд▓реЗрдВ рдХрд┐ PATH рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдореЗрдВ рдиреЛрдб.рдЬреЗрдПрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдкрде рд╢рд╛рдорд┐рд▓ рд╣реИ, рдФрд░ рдПрдХ рдЕрднреНрдпрд╛рд╕ рдХреЗ рд░реВрдк рдореЗрдВ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб "
coffee --version
" рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:
C: \ Project \ Tools \ CoffeeScript \ bin > рдиреЛрдб рдХреЙрдлреА - рд╡рд┐рд╕рд░реНрдЬрди рдХреЙрдлрд╝реАрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдВрд╕реНрдХрд░рдг 0.9.4
рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╕рдм рдХреБрдЫ рдЗрддрдирд╛ рд╕рд░рд▓ рдирд╣реАрдВ рд╣реИ рдпрджрд┐ рдЖрдкрдХреЛ рдХреЙрдлреА рдХреЛ рдЗрд╕рдХреЗ рдмрд┐рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реЗ рдирд╣реАрдВ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рдиреЛрдб.рдЬреЗрдПрд╕ рдХреЛ рд╕рд┐рдЧреНрд╡рд┐рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЦрд┐рдбрд╝рдХрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдРрд╕реЗ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рд▓рд┐рдП рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рднреА рд░рд╛рд╕реНрддреЗ рд╕рд╛рдЗрдмрд░ рд╕рд┐рдЯреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдпреВрдирд┐рдХреНрд╕ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдП рдЬрд╛рдиреЗ рдЪрд╛рд╣рд┐рдП (рдкреВрд░реНрдг рдкрде рдХреЗ рд▓рд┐рдП):
D: \ > рдиреЛрдб / рд╕рд╛рдЗрдмрд░рдбреНрд░рд╛рдЗрд╡ / рд╕реА / рдкреНрд░реЛрдЬреЗрдХреНрдЯ / рдЯреВрд▓реНрд╕ / рдХреЙрдлреАрд╕реНрдХреНрд░рд┐рдкреНрдЯ / рдмрд┐рди / рдХреЙрдлреА - рд╡рд┐рд╕рд░реНрдЬрди рдХреЙрдлрд╝реАрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдВрд╕реНрдХрд░рдг 0.9.4
рдЗрд╕ рддрд░рд╣ рдХреЗ рдХреЙрд▓ рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдПрдХ рдмреИрдЪ рдлрд╝рд╛рдЗрд▓ "
coffee.bat
" рдХреЗ рд░реВрдк рдореЗрдВ рдХреЙрдлреА рдХреЗ рд▓рд┐рдП рдирд┐рдореНрди рдЖрд╡рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рдмрд┐рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╕рд╣реЗрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
@pushdред @ рдПрд▓рд╕реАрдбреА / рдбреА% ~ dp0 @ рдиреЛрдб рдХреЙрдлреА% * @popd
рдЕрдм рдХреЙрдлреА рдХреЙрд▓ рд╕рд░рд▓ рд╣реЛ рдЧрдИ рд╣реИ:
D: \ > C: \ Project \ Tools \ CoffeeScript \ bin \ Coffee --version рдХреЙрдлрд╝реАрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдВрд╕реНрдХрд░рдг 0.9.4
рдЕрдм рд╣рдо рдЕрдкрдиреЗ
roast.coffee
рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХрдВрд╕реЛрд▓ рдкрд░ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
C: \ Project > рдЙрдкрдХрд░рдг \ рдХреЙрдлреАрд╕реНрдХреНрд░рд┐рдкреНрдЯ \ рдмрд┐рди \ рдХреЙрдлреА -c -p /cygdrive/C/Project/CfishScripts/rog.cfi (рдлрд╝рдВрдХреНрд╢рди () { var рднреБрдирд╛; рд░реЛрд╕реНрдЯ = рдлрд╝рдВрдХреНрд╢рди (рдХреНрдпрд╛) { рд╡рд╛рдкрд╕реА "рднреБрдирд╛ рд╣реБрдЖ" + (рдХреНрдпрд╛); }; рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ (рд░реЛрд╕реНрдЯ ('рдХреЙрдлреА!')); })ред рдХреЙрд▓ (рдпрд╣);
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдкрд╣рд▓реЗ рдХреА рддрд░рд╣, рдпрд╣ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдореЗрдВ рдпреВрдирд┐рдХреНрд╕ рдкрде рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИред
рдпрд╣рд╛рдБ рд╣рдорд╛рд░реА рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдП рдЖрддрд╛ рд╣реИ ...
Cygwin-рд▓рд╛рдЗрдЯ
... рдпрд╛ рдмрд▓реНрдХрд┐, рдЙрд╕рдХреА рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЙрдкрдпреЛрдЧрд┐рддрд╛ cygpath.exeред
рд╕рд╛рдЗрдЧрд╡рд┐рди-рд▓рд╛рдЗрдЯ рдмрд╣реБрдд рднрд╛рд░реА рдлрд╕рд▓реА рд╕рд╛рдЗрдЧрд╡рд┐рди рд╣реИ, рдЬреЛ рдЕрдкрдиреЗ рдЫреЛрдЯреЗ рдЖрдХрд╛рд░ рдХреЗ рдХрд╛рд░рдг рдХреЛрдб рдХреЗ рд╕рд╛рде рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рд╣рд╛рдБ, рдореБрдЭреЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╕рд╛рде рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рд╕реНрдЯреЛрд░ рдХрд░рдирд╛ рдкрд╕рдВрдж рд╣реИ)ред рдпрд╣рд╛рдБ Cygwin-Lite рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ ред рд╣рд╛рд▓рд╛рдБрдХрд┐ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╕рдВрдХрд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рд╕рд╛рдЗрдмрд░рдкреИрдЧ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрд╣ рдирд╣реАрдВ рдорд┐рд▓рд╛ рдХрд┐ рдЗрд╕реЗ рдкреИрдХреЗрдЬ рд╕реЗ рдЕрд▓рдЧ рд╕реЗ рдХрд╣рд╛рдБ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд╛рдирдХреЛрдВ рдХреЗ рд╕рд╛рде рд╕рд╛рдЗрдмрд░рд╕реНрдкреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ:
cygpath -a -u windows-filename
рдпрд╣ рдЖрдкрдХреЛ рд╡рд┐рдВрдбреЛрдЬрд╝ рдХреЗ рд░рд╛рд╕реНрддреЛрдВ рдХреЛ рдкреВрд░реНрдг рдпреВрдирд┐рдХреНрд╕ рдкрдереЛрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдПрдХ рдЙрджрд╛рд╣рд░рдг:
C: \ Project \ Tools \ CygwinLite \ bin > cygpath.exe -a -u cygpath.exe /cygdrive/c/Project/Tools/CygwinLite/bin/cygpath.exe
Compile.bat
рдареАрдХ рд╣реИ, рдЪрд▓реЛ рдЕрдВрдд рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдВрдХрд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмреИрдЪ рдлрд╝рд╛рдЗрд▓ рд▓рд┐рдЦреЗрдВ!
рдкреНрд░рдпреЛрдЧ рдХреА рд╢реБрджреНрдзрддрд╛ рдХреЗ рд▓рд┐рдП, рд╣рдо рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдФрд░ рдШрд░-рдирд┐рд░реНрдорд┐рдд рдХреЙрдлреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред
@ рдЬрд░рд╛ рд╣рдЯрдХреЗ рд░реЗрдо рд╕реНрд░реЛрдд рд▓рд┐рдкрд┐рдпреЛрдВ рдлрд╝реЛрд▓реНрдбрд░ sourceDir = CoffeeScripts рд╕реЗрдЯ рдХрд░реЗрдВ рд╕рдВрдХрд▓рд┐рдд рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП REM рдлрд╝реЛрд▓реНрдбрд░ рд╕реЗрдЯ рдбреЗрд╕реНрдЯрд┐рд░ = рдЬрд╛рд╡рд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ REM рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдлрд╝реЛрд▓реНрдбрд░ рд╕реЗрдЯ cygwinDir = рдЯреВрд▓ \ CygwinLite \ bin CoffeeDir = рдЯреВрд▓реНрд╕ \ CoffeeScript \ bin рд╕реЗрдЯ рдХрд░реЗрдВ рдиреЛрдбрдбрд┐рдЕрд░ = рдЯреВрд▓реНрд╕ \ рдиреЛрдбрдЬ рд╕реЗрдЯ рдХрд░реЗрдВ REM рдЧрдВрддрд╡реНрдп рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рд▓рд┐рдП рдФрд░ рдХреЙрдлреА рдХрдВрдкрд╛рдЗрд▓рд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдпреВрдирд┐рдХреНрд╕ рдкрде рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ / f %% o o рдХреЗ рд▓рд┐рдП ('% cygwinDir% \ cygpath.exe -a -u "% destDir%" ") рдЖрдЙрдЯрдкреБрдЯ рдЖрдЙрдЯрдкреБрдЯ рд╕реЗрдЯ рдХрд░реЗрдВ = %% o for / f %% c in ('% cygwinDir% \ cygpath.exe -a -u "% CoffeeDir% \ рдХреЙрдлреА")) CoffeePath = %% c рд╕реЗрдЯ рдХрд░реЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдХреЙрдлреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП REM ... %% f рдХреЗ рд▓рд┐рдП (% sourceDir% \ *ред рдХреЙрдлрд╝реА) рдХрд░рддреЗ рд╣реИрдВ ( REM ... рдЗрд╕рдХрд╛ рдпреВрдирд┐рдХреНрд╕ рдкрде рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ, ... / f %% s рдХреЗ рд▓рд┐рдП ('% cygwinDir% \ cygpath.exe -a -u %% f') ( рд░реЗрдо ... рдФрд░ рдЗрд╕реЗ рдЧрдВрддрд╡реНрдп рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдВ! % рдиреЛрдбрдбрд┐рд░% \ рдиреЛрдб% рдХреЙрдлреАрдкреИрде% -c -рдУ% рдЖрдЙрдЯрдкреБрдЯрдкрде%%% s ) ) рдЗрдХреЛ рдбрди!
compile.bat
рдЪрд▓рд╛рдПрдВ рдФрд░
JavaScripts
рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд
roast.js
рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ:
C: \ Project > рд╕рдВрдХрд▓рди рдХрд░реЗрдВ рд╣реЛ рдЧрдпрд╛! C: \ Project > JavaScripts \ roast.js рдЯрд╛рдЗрдк рдХрд░реЗрдВ (рдлрд╝рдВрдХреНрд╢рди () { var рднреБрдирд╛; рд░реЛрд╕реНрдЯ = рдлрд╝рдВрдХреНрд╢рди (рдХреНрдпрд╛) { рд╡рд╛рдкрд╕реА "рднреБрдирд╛ рд╣реБрдЖ" + (рдХреНрдпрд╛); }; рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ (рд░реЛрд╕реНрдЯ ('рдХреЙрдлреА!')); })ред рдХреЙрд▓ (рдпрд╣);
рд╣реБрд░реНрд░реЗ, рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ! рд▓реЗрдХрд┐рди рдмрдбрд╝реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдПрдХ рдмреИрдЪ рдлрд╝рд╛рдЗрд▓ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдЪрд╛рдирдХ рдХреБрдЫ рдЪрд╛рд╣рд┐рдПред
рдиреИрдиреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ NAnt рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реИрдВ, рдПрдХ рдЫреЛрдЯрд╛ рд╢реИрдХреНрд╖рд┐рдХ рдХрд╛рд░реНрдпрдХреНрд░рдоред
NAnt .NET рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдФрд░ рддреИрдирд╛рддреА рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рд╢реБрд▓реНрдХ рдЙрдкрдХрд░рдг рд╣реИред рдПрдХ рд╕рдордп рдореЗрдВ, NAnt рдХреЛ .NET рдлреНрд░реЗрдорд╡рд░реНрдХ рд╕реЗ (.NET рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдЯ рд╕рд┐рд╕реНрдЯрдо) .NET .NET рдореЗрдВ рдкреЛрд░реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ .NET рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреА рдЬрд░реВрд░рддреЛрдВ рдХреЗ рдЕрдиреБрд░реВрдк рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд▓реЗрдХрд┐рди рдЕрдЪреНрдЫреА рдХрд▓реНрдкрдирд╛ рдХреЗ рд╕рд╛рде, рдЗрд╕ рдЪреАрдЬ рдХреЛ рдХрд┐рд╕реА рднреА рдЪреАрдЬ рдХреЗ рд▓рд┐рдП рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╡рд░реНрддрдорд╛рди рдореЗрдВ, NAnt рдХреЛ рд╡рд┐рдВрдбреЛ рдХреЗ рдиреАрдЪреЗ рдФрд░ рд▓рд┐рдирдХреНрд╕ рдХреЗ рддрд╣рдд рдореЛрдиреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЪрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдлрд╛рдпрджреЗ: рдпрд╣ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдХрд╛рд░реНрдпреЛрдВ рдФрд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рдореЗрдВ рддреНрд░реБрдЯрд┐ рд╕реЗ рдирд┐рдкрдЯрдиреЗ, рдЕрдЪреНрдЫреА рдПрдХреНрд╕реНрдЯреЗрдВрд╕рд┐рдмрд┐рд▓рд┐рдЯреА рдФрд░ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдкреНрд▓рдЧрдЗрдиреНрд╕ рд╣реИрдВред
рдиреИрдиреНрдЯ рдХреЗ рд╕рд╛рде рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ:
- NAnt рдореБрдЦ рдкреГрд╖реНрда
- .NET рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдкрд░ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдЕрд╕реЗрдВрдмрд▓реА рдХрд╛ рд╕реНрд╡рдЪрд╛рд▓рди
- NAnt рдХрд╛ рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдкрд░рд┐рдЪрдп
- Dimecasts.net: NAnt рдПрдкрд┐рд╕реЛрдб (рд╕реНрдХреНрд░реИрдирд╛рд╕реНрдЯ)
рдФрд░ рдЗрд╕рд▓рд┐рдП, рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдиреЗрдВрдЯ рдХрд╛ рдХреБрдЫ рд╡рд┐рдЪрд╛рд░ рд╣реИ, рдФрд░ рдЕрдм рд╣рдо рдПрдХ рдирд┐рд░реНрдорд╛рдг рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦреЗрдВрдЧреЗ рдЬреЛ рдкрд┐рдЫрд▓реЗ рд╕рдВрдХрд▓рди рдХреЗ рд╕рдорд╛рди рдХреЙрдлреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдЧрд╛ред
<? xml рд╕рдВрд╕реНрдХрд░рдг = "1.0"?> <рдкреНрд░реЛрдЬреЗрдХреНрдЯ xmlns = "http://nant.sf.net/release/0.90-alpha1/nant.xsd" рдирд╛рдо = "рдХреЙрдлреА рдкрд░реАрдХреНрд╖рдг"> <! - рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рд╕реЗрдЯ рдХрд░реЗрдВред рдлрд╝рдВрдХреНрд╢рди $ {cygpath} -> рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП cygwin рдХреЗ рд▓рд┐рдП рдкрде рдЖрд╡рд╢реНрдпрдХ рд╣реИ <Setenv> <рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓ рдирд╛рдо = "рдкрде" рдорд╛рди = "рдЙрдкрдХрд░рдг \ CygwinLite \ bin; рдЙрдкрдХрд░рдг \ рдиреЛрдбрдЬ;% рдкрде%" /> </ Setenv> <foreach item = "рдлрд╝рд╛рдЗрд▓" рдЧреБрдг = "рдлрд╝рд╛рдЗрд▓ рдирд╛рдо"> <рдореЗрдВ> <рдЖрдЗрдЯрдо рдЖрдзрд╛рд░рд┐рдд = "рдХреЙрдлреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ"> <рдирд╛рдо = "*ред рдХреЙрдлрд╝реА" /> рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ </ рдЖрдЗрдЯрдо> </ рдореЗрдВ> <Do> <рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд╛рд░реНрдпрдХреНрд░рдо = "рдиреЛрдб"> <arg line = "$ {cygpath :: get-unix-path ('рдЯреВрд▓реНрд╕ \ рдХреЙрдлреАрд╕реНрдХреНрд░рд┐рдкреНрдЯ \ рдмрд┐рди \ рдХреЙрдлреА')}" /> <arg line = "- c" /> <arg line = "- o $ {cygpath :: get-unix-path (рдкрде :: get-full-path ('JavaScripts'))}" /> <arg line = "$ {cygpath :: get-unix-path (рдкрде :: get-full-path (рдлрд╝рд╛рдЗрд▓ рдирд╛рдо))}" /> </ Exec> </ Do> </ Foreach> </ рдкрд░рд┐рдпреЛрдЬрдирд╛>
рдмрд┐рд▓реНрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ "
compile.build
" рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд╣реЗрдЬреЗрдВ рдФрд░ рдЗрд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ "
compile.bat
"
compile.bat
:
рдЙрдкрдХрд░рдг \ Nant \ bin \ nant.exe -buildfile: compile.build
рдХреЙрдлреА рдХреЛ рд░реЛрд╕реНрдЯ рдХрд░реЗрдВ
C: \ Project \ Java рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ > рдиреЛрдб рд░реЛрд╕реНрдЯ.рдЬреЗрдПрд╕ рднреБрдиреА рд╣реБрдИ рдХреЙрдлрд╝реА!
рд╕реМрднрд╛рдЧреНрдп рд╣реИ