Less.js: рдбреЗрдЯрд╛-рдпреВрд░реА рдлрд╝рдВрдХреНрд╢рди рдбреЗрдЯрд╛-рдпреВрд░реА рдХреЙрд▓ рдХреЗ рдкрде рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рди рдХрд┐ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдкрде рдХреЗ рд╕рд╛рде рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛ред

рдХреЛ рдирд┐рд░реНрдорд┐рдд 8 рдЬреБрд▓ре░ 2015  ┬╖  37рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: less/less.js

https://github.com/less/less.js/issues/2541 рд╕реЗ рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЗрд╕реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рджреЗрдЦрд╛ рд╣реИ

// mixins.less
.background(@image) {
    background-image: data-uri(@image);
}
// app/content/button.less
button {
  .background("images/btn.jpg");
}

рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЫрд╡рд┐ app/content/images/btn.jpg рд▓реЗрдХрд┐рди рдЗрд╕реЗ images/btn.jpg ред

рдореИрдВ рдЗрд╕ рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдПрдХ рдмреНрд░реЗрдХрд┐рдВрдЧ рдмрджрд▓рд╛рд╡ рд╣реИ (рдПрдХ рдкреНрд░рдореБрдЦ рдЕрдк рдХреА рдЧрд╛рд░рдВрдЯреА) рдпрд╛ рдПрдХ рдмрдЧ рдлрд┐рдХреНрд╕ред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рд╣рдореНрдо...

рдареАрдХ рд╣реИред рдлрд┐рд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ resolve-url(url, [base]) рдлрд╝рдВрдХреНрд╢рди рд╣реИ - рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ base ; рдлрд╝рд╛рдЗрд▓ рдХреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЬрд┐рд╕рдореЗрдВ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рд▓рд┐рдЦрд╛/рдШреЛрд╖рд┐рдд/рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдлрд┐рд░ рдПрдХ declared-dir() рдлрд╝рдВрдХреНрд╢рди рд╣реИ рдЬреЛ рд╕рд┐рд░реНрдл this.fileInfo рдЦреАрдВрдЪрддрд╛ рд╣реИ рдФрд░ рдкрде рдХреЛ рдкрдХрдбрд╝ рд▓реЗрддрд╛ рд╣реИ, рдХреНрдпрд╛ рд▓реЗрдЦрдХ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкрде рдЦреАрдВрдЪрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ; рдХрд┐рд╕реА рднрд┐рдиреНрди рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдкрде рд▓реЗрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ; рдпрд╛ рдЗрд╕реЗ рдХрд┐рд╕реА рдЕрдиреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ URL рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд╣реАрдВ рд╣реИред

рдпрд╛рдиреА рдПрдХ рдлреБрд▓ рдлреЙрд░реНрдо рдХреЙрд▓ (рдмрд┐рдирд╛ рдирд┐рд╣рд┐рдд рдЖрдзрд╛рд░ рдХреЗ) рдХреБрдЫ рдРрд╕рд╛ рд╣реЛрдЧрд╛:

resolve-url("../foo", declared-dir())

... рдФрд░ рд╕рд┐рд░реНрдл рдХрд░рдиреЗ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрдЧрд╛

resolve-url("../foo")

... рдЬреЛ рдЖрд▓рд╕реА рдХреЗ рдмрд░рд╛рдмрд░ рдЙрддреНрд╕реБрдХ рд╣реИ

url("../foo")

рдЙрд╕ рддрд░рд╣ рд╕реЗ 'рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ' рдЗрдВрдЬреЗрдХреНрд╢рди рд╡рд╛рд▓реЗ рдЪрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреНрд▓рдЧрдЗрди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдПрдХ рд╕реЗрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИред рдФрд░ рд╣рдореЗрдВ рдЬрд┐рд╕ рдПрдХрдорд╛рддреНрд░ рдХреЛрд░ рдореИрдХреЗрдирд┐рдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╡рд╣ рд╣реИ рдпреВрдЖрд░рдПрд▓ рдХреЛ 'рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣рд▓' рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛, рддрд╛рдХрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░рд┐рдЬрд╝реЙрд▓реНрд╡рд░ рд▓реЙрдЬрд┐рдХ рдХреЛ resolve-url рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рдмрд╛рд╣рд░ рдЖрдиреЗ рд╡рд╛рд▓реЗ URL рдкрд░ рдЪрд▓рдиреЗ рд╕реЗ рд░реЛрдХрд╛ рдЬрд╛ рд╕рдХреЗред

рдкрд╛рдареНрдпрдХреНрд░рдо рдХреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдореЗрдВ рд╢рдмреНрджрд╛рд░реНрде рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдФрд░ рд╡рд╣ рдкреНрд░рд▓реЗрдЦрди рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рддреБрд▓рдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ url рдХреЗ рдЦрд┐рд▓рд╛рдл resolve-url рдЙрддреНрд╕реБрдХ рдФрд░ рдЖрд▓рд╕реА рдореВрд▓реНрдпрд╛рдВрдХрди / рд╕рдВрдХрд▓реНрдк рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

рд╕рднреА 37 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдореИрдВ рдЗрд╕ рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдПрдХ рдмреНрд░реЗрдХрд┐рдВрдЧ рдмрджрд▓рд╛рд╡ рд╣реИ (рдПрдХ рдкреНрд░рдореБрдЦ рдЕрдк рдХреА рдЧрд╛рд░рдВрдЯреА) рдпрд╛ рдПрдХ рдмрдЧ рдлрд┐рдХреНрд╕ред

FYI рдХрд░реЗрдВ: рдЖрдк рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рддрд░реАрдХреЗ рд╕реЗ рдкреАрдЫреЗ рдХреА рдУрд░-рд╕рдВрдЧрддрддрд╛ рдХреЛ рддреЛрдбрд╝реЗ рдмрд┐рдирд╛ рдЗрд╕реЗ рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рдврдВрдЧ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╡рд░реНрддрдорд╛рди рдореЗрдВ data-uri() рдлрд╝рдВрдХреНрд╢рди рдлрд╝рд╛рдЗрд▓ рдкрде рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдзрд╛рд░рдг рдХрд░рдиреЗ рд╡рд╛рд▓реЗ Quoted рдЯреНрд░реА рдиреЛрдб рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рд░рдЦрдиреЗ рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕реНрдерд╛рди рдХреЗ рд╡рд┐рд░реБрджреНрдз URL рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕реЗ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рд╣рд▓ рдХрд░рддрд╛ рд╣реИред рдЖрдк data-uri рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ URL рд╡рд╛рд▓реЗ Url рдЯреНрд░реА рдиреЛрдб рдХреЛ рднреА рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рднрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рддрд░рд╣ URL рдХреЛ рдЙрд╕ рд╕реНрдерд╛рди рдХреЗ рд╡рд┐рд░реБрджреНрдз рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд╣рд╛рдВ url() CSS рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЕрдм рдЗрд╕реЗ data-uri() рдХрдо рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП

// app/content/button.less
button {
  .background(url("images/btn.jpg"));
}

@rjgotten

рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рдПрдХ рдлрд┐рдХреНрд╕ рдХреЗ рдмрдЬрд╛рдп рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИред рдЖрдЧреЗ рдХреА рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдкрд░ рд╡реЗ url рдХреЛ рдорд┐рдХреНрд╕рд┐рди рдореЗрдВ рд▓реЗ рдЬрд╛рдХрд░ рд╡рд░реНрдмреЛрд╕рд┐рдЯреА рд╕реЗ рдмрдЪрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╕рдорд╕реНрдпрд╛ рдлрд┐рд░ рд╕реЗ рдЖрддреА рд╣реИред рджреВрд╕рд░реА рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдореВрд▓ рдЙрдкрдпреЛрдЧ-рдорд╛рдорд▓рд╛ рд▓реЗрдирд╛ рдЬрд╣рд╛рдВ рдпрд╣ рд╕рдорд╕реНрдпрд╛ (# 2541) рд╕реЗ рдЖрдИ рд╣реИ, рдЗрд╕реЗ рдЕрдХреНрд╕рд░ рдЗрд╕ рддрд░рд╣ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

// mixins.less
.background(@image) {
    background-image: data-uri("@{image}.jpg");
}
// app/content/button.less
button {
  .background("images/btn");
}

(рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдлреЙрдиреНрдЯ-рдлреЗрд╕ рдорд┐рдХреНрд╕рд┐рди рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рдХрдИ woff , ttf , eot , eot?#iefix рдЖрджрд┐ рдПрдХ рд╣реА рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рд╕реЗ рдЬреБрдбрд╝реЗ рдПрдХреНрд╕рдЯреЗрдВрд╢рди ) рдФрд░ рдЗрд╕ рддрд░рд╣ рдкрд╣рд▓реЗ рд╡рд╛рд▓рд╛ url рднреА рдЕрд╕рдВрднрд╡ рд╣реИред

@ рд╕рд╛рдд-рдЪрд░рдг-рдЕрдзрд┐рдХрддрдо

рддрдм рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдХреЛрдИ рдЙрдкрдпреБрдХреНрдд рд╕рдорд╛рдзрд╛рди рдЕрд╡рдзрд┐ рд╣реИред рдЖрдкрдХреЛ рдЙрд╕ рд╕рдВрджрд░реНрдн рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдЪрд╛рд╣рд┐рдП рдЬрд┐рд╕рдХреЗ рд╡рд┐рд░реБрджреНрдз рдПрдХ рд╕рд╛рдкреЗрдХреНрд╖ URL рдХреЛ рд╣рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╛ рддреЛ рдЖрдк рдЙрд╕ рд╕рдВрджрд░реНрдн рдХреЛ рдЙрд╕ рдлрд╝рд╛рдЗрд▓ рдХреА рдлрд╝рд╛рдЗрд▓ рдЬрд╛рдирдХрд╛рд░реА рд╕реЗ рд▓реЗрддреЗ рд╣реИрдВ рдЬреЛ data-uri() рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдорд╛рди рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреА рд╣реИ, рдпрд╛ рдЖрдк url() рдлрд╝рдВрдХреНрд╢рди рдФрд░ Url рдЯреНрд░реА рдиреЛрдбред

рдпрджрд┐ рдЖрдк рдкрде рдЪрд░ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЪреАрдЬреЗрдВ рдЬрд▓реНрджреА рд╕реЗ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЛ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдХрд┐ рдкрде рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рдХреИрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдХреБрдЫ рд╕рд╛рдорд╛рдиреНрдп рдХреИрд╕реЗ рдХрд░рддреЗ рд╣реИрдВ:

// mixins.less
.background(@image) {
    background-image: data-uri("../../@{image}.jpg");
}
// app/content/button.less
button {
  .background("../images/btn");
}

рдЖрдк рдЙрди рджреЛ рдкрдереЛрдВ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ url рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдФрд░ рдЯреЛрдХрди рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди-рд╕рдВрдЪрд╛рд▓рд┐рдд рд╕рдВрдпреЛрдЬрди рдХреЛ рдХреИрд╕реЗ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░реЗрдВрдЧреЗ?

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

рдПрдХ рдЕрдиреНрдп рд╕рдорд╛рдзрд╛рди рдкрде рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдпрд╛ рдлрд╝рд╛рдЗрд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдЬреЛрдбрд╝рдиреЗ/рдирд┐рдХрд╛рд▓рдиреЗ/рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдкрде рдкреНрд░рдмрдВрдзрди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкреЗрд╢ рдХрд░рдирд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рдЗрд╕реА рддрд░рд╣ unit() рдлрд╝рдВрдХреНрд╢рди рдЖрдпрд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?) рдФрд░ рдЪреАрдЬреЛрдВ рдХреЛ рдФрд░ рд╕реНрдкрд╖реНрдЯ рдХрд░реЗрдВред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП

// mixins.less
.background(@image) {
    background-image: data-uri(extension(<strong i="21">@image</strong>, "jpg"));
}
// app/content/button.less
button {
  .background(url("./images/btn"));
}

рдЖрдкрдХреЗ рдкрд╣рд▓реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕реЗ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рд╕рд╛рдорд╛рдиреНрдпреАрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, "../../@{image}.jpg" рд╡рд┐рд╕реНрддрд╛рд░ "../../../images/btn.jpg" рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ (рдФрд░ рдлрд┐рд░ рдкрде рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ data-uri рддрдХ рд╣реИ)ред
рдФрд░ рджреВрд╕рд░рд╛ рдЙрджрд╛рд╣рд░рдг рдмрд╕ рд╣реИ... рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╕реНрдЯреИрдХрд┐рдВрдЧ рдХрд░рдирд╛ рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреИрдХрд╡рд░реНрдб-рдХрдореНрдкреИрдЯрд┐рдмрд┐рд▓рд┐рдЯреА рдХреЗ рд╕рд╛рде рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП... рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛? рдЕрдиреНрдп рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдорд┐рдХреНрд╕рд┐рди рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╕рдордп _рдЧрд▓рдд_ рдлрд╝рд╛рдЗрд▓ рдкрде?

рдЖрдЦрд┐рд░рдХрд╛рд░ рдЕрдЧрд░ рдЗрд╕реЗ "рдЙрдореНрдореАрдж рдХреЗ рдореБрддрд╛рдмрд┐рдХ" _only_ .background(url("images/btn.jpg")); рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рддреЛ рдпрд╣ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдмрджрд▓рд╛рд╡ рдХреЗ рд╕реАрдзреЗ .background(data-uri("images/btn.jpg")); рд▓рд┐рдЦрдиреЗ рд╕реЗ рдХреИрд╕реЗ рдЕрд▓рдЧ рд╣реИ? :)


рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ рдореЗрд░рд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдЗрд╕реЗ рдареАрдХ рдХрд░рдирд╛ рд╣реИ рддреЛ рдЗрд╕реЗ data-uri рд╕рд╛рде рддрдп рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЪрд╛рд╣реЗ рд╡рд╣ рдХрд┐рддрдирд╛ рднреА рдЯреВрдЯ рдЬрд╛рдПред (рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдПрдХ рдмреЗрд╣рддрд░ рд░рдгрдиреАрддрд┐ рдХреНрдпрд╛ рд╣реЛрдЧреА: рдПред рдЗрд╕рдХреЗ рд▓рд┐рдП рдФрд░ рд░рд┐рдкреЛрд░реНрдЯ/рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ рдФрд░ рдлрд┐рд░ (рдпрджрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИрдВ) рдмрджрд▓реЗрдВ рдпрд╛ рдмреАред рд╕рдВрднрд╛рд╡рд┐рдд рдмреНрд░реЗрдХрд┐рдВрдЧ рдкреНрд░рднрд╛рд╡ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдкрд╣рд▓реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВ)ред



рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдорд╛рди рд▓реЗрдВ рдХрд┐ url рдФрд░ data-uri рдХреЛ рд╢реБрд░реВ рдореЗрдВ рд╡рд┐рдирд┐рдореЗрдп рдХреЗ рд░реВрдк рдореЗрдВ рдбрд┐рдЬрд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ (рдпрд╛рдиреА data-uri рдХреЗрд╡рд▓ url рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╕рдВрд╕реНрдХрд░рдг рд╣реИ (рдФрд░ CSS url рд▓рд┐рдП рд╕рдВрдХрд▓рд┐рдд рд╣реИ) ulr "рдЗрд╕ рддрд░рд╣" (рдЙрд╕ рддрд░рд╣ рдХреЗ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд╕рд╛рде) рдХреНрдпреЛрдВ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИ рдЬрдмрдХрд┐ data-uri "рдЙрд╕ рддрд░рд╣" рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИ (рдХреЗ рд╕рд╛рде) рдЗрд╕ рддрд░рд╣ рдХреЗ рд╡рд┐рдХрд▓реНрдк), рдФрд░ рдХреБрдЫ рд╡реНрдпрд╡рд╣рд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ data-uri(url()) рдХреЙрдореНрдмреЛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдПрдХ рдорд┐рд╢реНрд░рдг рдХреЗ рдЕрдВрджрд░ " data-uri рддрдХ рд╕реАрдорд┐рдд рдФрд░ url _out_ рдЗрд╕рдХреЗ рд╕рд╛рде --relative-urls: on " <- рднреГреНрд░рд░... :)

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

рд╣рд╛рдБ рдореИ рд╕рд╣реНрдордд рд╣реВрдБред

рдореИрдВ рдзреАрд░реЗ-рдзреАрд░реЗ рдПрдХ v3 рд░рд┐рд▓реАрдЬ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдФрд░ рдкреНрд░рдпрд╛рд╕ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдЗрд╕реЗ рдареАрдХ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рдореИрдВ рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рдлрд╝рд╛рдЗрд▓ рдкрдереЛрдВ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдПрдХ-рдПрдХ рдХрд░рдХреЗ рдЖрдЬрд╝рдорд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛ - рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдереЛрдбрд╝рд╛ рдмреБрд░рд╛ рд╣реИ рдЕрдЧрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рдХрдИ рдлрд╛рдЗрд▓реЗрдВ рд╣реИрдВ ... рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕реЗ рд╣рдореЗрд╢рд╛ рдХреЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдареАрдХ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХрдо рд╕реЗ рдХрдо рд╣рдо рд╕рд╛рдорд╛рдиреНрдп рдорд╛рдорд▓реЗ рдХреЛ рдареАрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдПрдХ resolve() рдлрд╝рдВрдХреНрд╢рди рд╣рд▓ рдХрд┐рдП рдЧрдП рдпреВрдЖрд░рдПрд▓ рдХреЛ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рдкрд╛рд╕ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ (рд▓реЗрдХрд┐рди рдлрд┐рд░ рдпрджрд┐ рдпрд╣ рдПрдХ рдкреВрд░реНрдг рдкрде рдирд╣реАрдВ рд╣реИ рдЬреЛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ рдФрд░ рдпрд╣ рддрдп рд╣реЛрдиреЗ рдкрд░ рдПрдХ рдкреВрд░реНрдг рдкрде рдХрд╛рдо рдХрд░реЗрдЧрд╛ ...)

рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдмрд╕ рдЬрд▓реНрджреА рд╕реЗ рд╡рд┐рдЪрд╛рд░ рд▓рд┐рдЦ рд░рд╣реЗ рд╣реИрдВред

рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рддреНрд╡рд░рд┐рдд рдЯрд┐рдкреНрдкрдгреА рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдЗрдВрдЯрд░рдкреЛрд▓реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдпрд╛рдд рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реЛрдЧреАред

рдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдЗрдВрдЯрд░рдкреЛрд▓реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдпрд╛рдд рдХрд░реЗрдВред

рдпрд╣ рджрд┐рд▓рдЪрд╕реНрдк рдФрд░ рдкрд░реЗрд╢рд╛рди рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рджреЛрдиреЛрдВ рд╣реИред
рдХреНрдпрд╛ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдорд░реНрдерд┐рдд рдЙрдкрдпреЛрдЧ-рдорд╛рдорд▓рд╛ рдпрд╛ рд╕реБрдЦрдж рд╕рдВрдпреЛрдЧ рд╣реИ?

@rjgotten рдпрд╣ рд╕рдорд░реНрдерд┐рдд рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕рдорд░реНрдерди рдХреБрдЫ рд╣рдж рддрдХ рд╕реАрдорд┐рдд рд╣реИред рдЗрд╕реЗ #410 . рдореЗрдВ рдЯреНрд░реИрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛

рдпрд╣ рд╕рд╣реА рд╣реИ:

<strong i="8">@variable</strong>: "path.less";
<strong i="9">@import</strong> "@{variable}";

рдпрд╣ рдирд╣реАрдВ рдХрд░рддрд╛:

.mixin(@variable) {
  <strong i="13">@import</strong> "@{variable}";
}

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рд▓рд┐рдВрдХ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрд╢реЛрдзрд┐рддред

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВ рдорд┐рд╢реНрд░рдг рдореЗрдВ рдЪрд░ @import рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред
рд╕рдВрдкреВрд░реНрдг рдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдЖрдпрд╛рдд рдЪреАрдЬрд╝ рдереЛрдбрд╝рд╛ рдЬрд╛рджреВ рд╣реИ рдФрд░ рдХреБрдЫ рдХрд╛рдЙрдВрдЯрд░-рд╕рд╣рдЬ рдЬреНрдЮрд╛рди рдпреБрдХреНрдд рдХреЛрдб рдмрдирд╛ рд╕рдХрддреА рд╣реИ .. рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕реЗ рд╣рддреЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

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

рдЕрднреА рдореЗрд░реЗ рдкрд╛рд╕ рдлрд╝рд╛рдЗрд▓ рд╣реИ рдЬреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рдкрде рд╕реЗ _a рд╕рдВрджрд░реНрдн_ рдЖрдпрд╛рдд рдХрд░рддреА рд╣реИ, рдФрд░ рдпрд╣ рдЕрднреА рднреА рдбреЗрдЯрд╛-рдпреВрд░реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╢рд┐рдХрд╛рдпрдд рдХрд░рддреА рд╣реИред рдХрдо рд╕реЗ рдХрдо рдпрд╣ рдПрдХ рдмрдЧ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП? рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЕрдЧрд░ рдореИрдВ рд╕рдВрджрд░реНрдн рджреНрд╡рд╛рд░рд╛ рдЖрдпрд╛рдд рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдЙрд╕реЗ рд╡рд░реНрддрдорд╛рди рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдкрде рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

@Ciantic

рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЕрдЧрд░ рдореИрдВ рд╕рдВрджрд░реНрдн рджреНрд╡рд╛рд░рд╛ рдЖрдпрд╛рдд рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдЙрд╕реЗ рд╡рд░реНрддрдорд╛рди рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдкрде рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд┐рд╕ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ? рдЗрд╕рдХрд╛ reference рдХреНрдпрд╛ рд▓реЗрдирд╛-рджреЗрдирд╛ рд╣реИ?

рдЕрднреА рдореЗрд░реЗ рдкрд╛рд╕ рдлрд╝рд╛рдЗрд▓ рд╣реИ рдЬреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рдкрде рд╕реЗ рд╕рдВрджрд░реНрдн рдЖрдпрд╛рдд рдХрд░рддреА рд╣реИ, рдФрд░ рдпрд╣ рдЕрднреА рднреА рдбреЗрдЯрд╛-рдпреВрд░реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╢рд┐рдХрд╛рдпрдд рдХрд░рддреА рд╣реИред

рдпрд╣ рдКрдкрд░ рдХреЗ рдореБрджреНрджреЗ рдХреЗ рд╡рд┐рдкрд░реАрдд рд▓рдЧрддрд╛ рд╣реИред рдХреНрдпрд╛ рдЖрдк рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЖрдпрд╛рдд, рдЖрдпрд╛рддрд┐рдд рдФрд░ рдбреЗрдЯрд╛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдЖрджрд┐ рдХреЗ рдкрде)ред

рд╢реИрд▓рд┐рдпрд╛рдБ.рд╡рд┐рд╣реАрди

.something {
    background: data-uri("some.svg");
}

рд╕рдм/рдЯреЗрд╕реНрдЯ.рд▓реЗрд╕

<strong i="11">@import</strong> (reference) "../style.less";
.test {
    color: green;
}

рдпрд╣ style.less рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди test.less рдирд╣реАрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ test.less рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдбреЗрдЯрд╛-рдпреВрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИред

рд╕рдВрджрд░реНрдн рдЖрдпрд╛рдд рдкрдереЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХреНрдпреЛрдВ рдХрд░реЗрдЧрд╛, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ рд╕рдВрджрд░реНрднреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред

рдореИрдВ рдбреЗрдЯрд╛-рдпреВрд░реА рд╕реЗ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рдпреВрдЖрд░рдПрд▓ рдкреБрдирд░реНрд▓реЗрдЦрди рдирд┐рдпрдореЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реВрдВред рдмреЗрд╢рдХ .... рдпрд╣ рдХрд╣рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдбреЗрдЯрд╛-рдпреВрд░реА рдХреЗ рд╕рд╛рде рдЗрд╕рдХрд╛ рдХреНрдпрд╛ рдЕрд░реНрде рд╣реИред

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдбреЗрдЯрд╛-рдпреВрд░реА рдХреЛ "рдХреЙрд▓рд┐рдВрдЧ .less рдлрд╝рд╛рдЗрд▓" рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рд╣рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рддреЛ рдПрдХ рдорд┐рд╢реНрд░рдг рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЬрд╣рд╛рдВ рдорд┐рд╢реНрд░рдг рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрд╕рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдЗрд╕реЗ рд╣рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рди рдХрд┐ рдорд┐рд╢реНрд░рдг рд╕реНрдерд╛рди рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ред рдорд┐рд╢реНрд░рдг рдЙрди рдмрдпрд╛рдиреЛрдВ рдореЗрдВ "рдорд┐рд╢реНрд░рд┐рдд" рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдЙрдиреНрд╣реЗрдВ рд╣рд▓ рдХрд░рддрд╛ рд╣реИред рддреЛ @lukeapage рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рд╕рд╣реА рд╣реИ:

// app/content/button.less
button {
  .background("images/btn.jpg");
}

рдЗрд╕реЗ app/content/images/ рдкрд░ btn.jpg рдЦреЛрдЬрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рдпрд╣ рдПрдХ рдмрдЧ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдорд┐рд╢реНрд░рдг рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдПрдХ "рдмреНрд░реЗрдХрд┐рдВрдЧ рдЪреЗрдВрдЬ" рд╣реИ рд▓реЗрдХрд┐рди рдПрдХ рдмрдЧ рдлрд┐рдХреНрд╕ рд╣реИред

рдЙрд╕ рдиреЗ рдХрд╣рд╛... рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рд╣реЛрдЧреА:

  1. рдлреЛрди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред
  2. рдорд┐рд╢реНрд░рдг рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ред

Node.js рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдЕрдиреЗрдХ рдкрдереЛрдВ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИред рдЬрдм рддрдХ рд╕рдорд╛рдзрд╛рди рдЖрджреЗрд╢ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкреНрд░рд▓реЗрдЦрд┐рдд рд╣реИ, рддрдм рддрдХ рдЖрдк рдЕрдкреЗрдХреНрд╖рд╛рдУрдВ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рдЕрдЧрд░ рдХрд┐рд╕реА рдиреЗ рдЕрдкрдирд╛ .less to do рд╡реНрдпрд╡рд╣рд╛рд░ # 2 рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рд╣реЛрддрд╛, рддреЛ рдпрд╣ рдЕрднреА рднреА рд▓рдЧрднрдЧ рд╕рднреА рдореЗрдВ рдХрд╛рдо рдХрд░реЗрдЧрд╛, рдпрджрд┐ рд╕рднреА рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдирд╣реАрдВред

@ рдореИрдереНрдпреВ-рдбреАрди
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдбреЗрдЯрд╛-рдпреВрд░реА рдХреЛ "рдХреЙрд▓рд┐рдВрдЧ .less рдлрд╝рд╛рдЗрд▓" рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рд╣рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рддреЛ рдПрдХ рдорд┐рд╢реНрд░рдг рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЬрд╣рд╛рдВ рдорд┐рд╢реНрд░рдг рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрд╕рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдЗрд╕реЗ рд╣рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рди рдХрд┐ рдорд┐рд╢реНрд░рдг рд╕реНрдерд╛рди рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ред рдорд┐рд╢реНрд░рдг рдЙрди рдмрдпрд╛рдиреЛрдВ рдореЗрдВ "рдорд┐рд╢реНрд░рд┐рдд" рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдЙрдиреНрд╣реЗрдВ рд╣рд▓ рдХрд░рддрд╛ рд╣реИред

рдЖрдк рдЙрд╕ рдХрд╛рдо рдХреЛ рдХрднреА рднреА рдЗрд╕ рддрд░рд╣ рд╕реЗ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рдЬреЛ рдЖрдо рддреМрд░ рдкрд░ рд╕рднреА рдЙрдкрдпреЛрдЧ-рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рд╣реЛред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЖрдк рдкреИрд░рд╛рдореАрдЯреНрд░рд┐рдЬреНрдб рдпреВрдЖрд░рдПрд▓, рдпрд╛рдиреА рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдЯреЛрдХрди рд╡рд╛рд▓реЗ рдпреВрдЖрд░рдПрд▓ рдХрд╛ рд╕рдорд░реНрдерди рдХреИрд╕реЗ рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рд╕реЗ рдХреБрдЫ рдЬреНрдЮрд╛рдд рдмреЗрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рдЦрд┐рд▓рд╛рдл рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреЗрд╡рд▓ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдЯреЛрдХрди рднрд░реЗ рд╣реБрдП рд╣реИрдВ? рдЙрд╕ рдорд╛рдорд▓реЗ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреА рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╡рд┐рд░реБрджреНрдз рдкреБрди: рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рди рдХрд┐ рдХреЙрд▓рд░ рдХреА рдлрд╝рд╛рдЗрд▓ред

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

рдЬрдм рд╢рд╛рдмреНрджрд┐рдХ Quoted рдиреЛрдбреНрд╕ рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рдЙрдирдХреА рдлрд╝рд╛рдЗрд▓ рдЬрд╛рдирдХрд╛рд░реА рдмрдирд╛рдП рд░рдЦреЗрдВред рд╡реИрд░рд┐рдПрдмрд▓ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ, рдорд┐рдХреНрд╕рд┐рди рдХреЙрд▓ рдЖрджрд┐ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрд╕ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдкреНрд░рдЪрд╛рд░ рдХрд░реЗрдВред рдХреЙрд▓рд░ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдЙрддреНрдкрдиреНрди рдХреЛрдИ рднреА Quoted рдореВрд▓реНрдп, рдЬрдм url() рдпрд╛ data-uri() рджреНрд╡рд╛рд░рд╛ рдЗрд▓рд╛рдЬ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЙрд╕ рдХреЙрд▓рд░ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╡рд┐рд░реБрджреНрдз рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред . рд▓реЗрдХрд┐рди рдПрдХ Quoted рдорд╛рди рдЬреЛ рдХрд┐рд╕реА рдорд┐рдХреНрд╕рд┐рди рдХреЗ рдХреБрдЫ рдЖрдВрддрд░рд┐рдХ рддрд░реНрдХ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ, рдЕрднреА рднреА рдорд┐рдХреНрд╕рд┐рди рдХреА рд╕реНрдерд╛рдиреАрдп рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╡рд┐рд░реБрджреНрдз рд╣рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдпрд╣ рд╕рдм рдХреБрдЫ рдЕрдкреЗрдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд░рд╣рддрд╛ рд╣реИ, рдкрд░рд┐рджреГрд╢реНрдп рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рд╕рд╣реЗрдЬреЗрдВ рдЬреИрд╕реЗ рдХрд┐:

// mixins.less
.background(@image) {
    background-image: data-uri("@{image}.jpg");
}
// app/content/button.less
button {
  .background("images/btn");
}

рдПрдХ рдЪрд╛рд▓ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдЙрдиреНрд╣реЗрдВ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдЦреАрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ: рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдЯреЛрдХрди рднрд░рддреЗ рд╕рдордп, рдпрджрд┐ рдХреЛрдИ рдЯреЛрдХрди рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╣реИ, рддреЛ рдкрд░рд┐рдгрд╛рдореА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдлрд╝рд╛рдЗрд▓ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдЯреЛрдХрди рдореЗрдВ рднрд░реЗ рд╣реБрдП рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗред

рдпрджрд┐ рдорд┐рдХреНрд╕рд┐рди рдХреЗ рдЕрдкрдиреЗ рд▓реЗрдЦрдХ рдХрд╛ рдЗрд░рд╛рджрд╛ рдЗрд╕ рддрд░рд╣ рдХреЗ рдкрдереЛрдВ рдХреЛ рдорд┐рдХреНрд╕рд┐рди рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╡рд┐рд░реБрджреНрдз рд╣рд▓ рдХрд░рдирд╛ рд╣реИ, рддреЛ рд╡реЗ рдЕрднреА рднреА рдЙрд╕ рдХрд╛рдо рдХреЛ рдПрдХ рдкреИрдЯрд░реНрди рдХреЗ рд░реВрдк рдореЗрдВ "./@{image}.jpg" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ рдЬрд┐рдореНрдореЗрджрд╛рд░реА рдХреЗ рдмреЛрдЭ рдХреЛ рдХреЙрд▓рд░ рд╕реЗ рджреВрд░ рдХрд░ рджреЗрддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВред

// _mixins.less
.sprite(@image) {
    background: data-uri("../images/sprites/@{image}.png") no-repeat;
}
// main.less
div {
   .sprite('logo');
}

рдЖрдЙрдЯрдкреБрдЯ:

div {
   background: url(data:image/png;base64,...) no-repeat;
}

рд╡рд╛рд╣, рдпрд╣ рдмрд╣реБрдд рдкреБрд░рд╛рдирд╛ рд╣реИ... рдореЗрд░реЗ рджреЛ рд╕реЗрдВрдЯ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдореБрджреНрджрд╛ рдореБрдЭреЗ рднреА рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИред

рдпреВрдЖрд░рдПрд▓ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝рдиреЗ рдпрд╛ рдПрдХ рдирдпрд╛ рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рд╣реИ, рдЬреЛ рдпреВрдЖрд░рдПрд▓ рдХреЛ рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рд╣рд▓ рдХрд░реЗрдЧрд╛ред рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдорд┐рд╢реНрд░рдг рдХрд╣рд╛рдБ рд╕реЗрдЯ рд╣реИ, рдпрд╣ рдкреВрд░реНрдг рдкрде рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдЧрд╛ рдФрд░ рдЧрд▓рддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЬрдЧрд╣ рдирд╣реАрдВ рд╣реЛрдЧреАред

рдпреВрдЖрд░рдПрд▓ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝рдиреЗ рдпрд╛ рдПрдХ рдирдпрд╛ рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рд╣реИ, рдЬреЛ рдпреВрдЖрд░рдПрд▓ рдХреЛ рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рд╣рд▓ рдХрд░реЗрдЧрд╛ред рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдорд┐рд╢реНрд░рдг рдХрд╣рд╛рдБ рд╕реЗрдЯ рд╣реИ, рдпрд╣ рдкреВрд░реНрдг рдкрде рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдЧрд╛ рдФрд░ рдЧрд▓рддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЬрдЧрд╣ рдирд╣реАрдВ рд╣реЛрдЧреАред

рдпрд╣рд╛рдВ рдореБрджреНрджрд╛ рдкреВрд░реНрдг рдмрдирд╛рдо рд╕рд╛рдкреЗрдХреНрд╖ рдкрде рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рдерд╛ред рдпрд╣ рдХреЙрд▓ рд╕рд╛рдЗрдЯ рдХреЗ рдЦрд┐рд▓рд╛рдл рд░рд┐рд╢реНрддреЗрджрд╛рд░ рдмрдирд╛рдо рдШреЛрд╖рдгрд╛ рд╕реНрдерд▓ рдХреЗ рдЦрд┐рд▓рд╛рдл рд░рд┐рд╢реНрддреЗрджрд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдерд╛ред рдмрд┐рд▓реНрдХреБрд▓ рдЕрд▓рдЧ рд╕рдорд╕реНрдпрд╛ред

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

рддреЛ рд╕рдорд╛рдзрд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рдЙрд╕рдореЗрдВ рдкреВрд░реНрдг рдкрде рдХрд╛рд░рдХ рдХрд╣рд╛рдВ рд╣реИрдВ?

рдорд╛рди рд▓реЗрдВ рдХрд┐ рдбреЗрдЯрд╛-рдпреВрд░реА рдкреВрд░реНрдг рдкрде рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдПрдХ рд╣рд┐рдкреЛрдЯреЗрдерд┐рдХрд▓ absolute-url рдлрд╝рдВрдХреНрд╢рди рд╣реИ, рдирд┐рдореНрди рдХреЛрдб рдХрд╛рдо рдХрд░реЗрдЧрд╛ рдЪрд╛рд╣реЗ рдорд┐рд╢реНрд░рдг рдХрд╣реАрдВ рднреА рд░рдЦрд╛ рдЬрд╛рдПред

// mixins.less
.background(@image) {
    background-image: data-uri(@image);
}
// app/content/button.less
button {
  .background(absolute-url("images/btn.jpg"));
}

@ miljan-aleksic "рдкреВрд░реНрдг" рд╕реЗ рдХреНрдпрд╛ рдЖрдкрдХрд╛ рдорддрд▓рдм data-uri рдХреЗ рд╕реНрдерд╛рди рдкрд░ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рд╣реИ? рдпрджрд┐ рдРрд╕рд╛ рд╣реИ рддреЛ "рдкреВрд░реНрдг" рд╢рд╛рдпрдж рдЧрд▓рдд рд╢рдмреНрдж рд╣реИред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдпреВрдЖрд░рдПрд▓ рдлрд╝рд╛рдЗрд▓-рд╕рд╛рдкреЗрдХреНрд╖ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдпреВрдЖрд░рдПрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд░реИрдкрд░ рдХреА рддрд░рд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд╣реИред рдпрд╛ url() рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рддрд░реНрдХред

@ рдореИрдереНрдпреВ-рдбреАрди, рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рдореЗрд░рд╛ рдорддрд▓рдм рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдг рдкрде рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: /users/myuser/projects/lessproject/icon.svg ред

рдореБрдЭреЗ рдЖрдкрдХрд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдирд╣реАрдВ рджреЗрдЦрддрд╛ рдХрд┐ рдХреИрд╕реЗ url() рдбреЗрдЯрд╛-рдпреВрд░реА рд╕реНрдерд╛рди рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдкрде рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИ рдмрд┐рдирд╛ рдЗрд╕реЗ рдЬрд╛рдиреЗред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдпреВрдЖрд░рдПрд▓ рдлрд╝рд╛рдЗрд▓-рд╕рд╛рдкреЗрдХреНрд╖ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдпреВрдЖрд░рдПрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд░реИрдкрд░ рдХреА рддрд░рд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд╣реИред рдпрд╛ url() рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рддрд░реНрдХред

рдордЬрд╝реЗ - рдордЬрд╝реЗрдВ рдореЗрдВ рдмрд╣реБрдд; рд▓рдЧрднрдЧ рдпрд╣реА рдореИрдВрдиреЗ рдХреБрдЫ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рд╕реБрдЭрд╛рдпрд╛ рдерд╛ред ;-)

рдирд┐рд░рдкреЗрдХреНрд╖ рд╕реЗ рдореЗрд░рд╛ рдорддрд▓рдм рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдг рдкрде рд╕реЗ рд╣реИ, рдЬреИрд╕реЗ: /users/myuser/projects/lessproject/icon.svgред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рдЖрдкрдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдпрд╣ absolute-url рдлрд╝рдВрдХреНрд╢рди _pre-resolves_ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕реНрдерд╛рди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдкреВрд░реНрдг рдЖрдЙрдЯрдкреБрдЯ рдкрде рдореЗрдВ рдЗрд╕реЗ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╕рд╛рдкреЗрдХреНрд╖ рдкрде рдЬрд┐рд╕рдореЗрдВ absolute-url рдлрд╝рдВрдХреНрд╢рди рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрд╕ рд╕реНрдерд╛рди рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдЬрд╣рд╛рдВ рд╕рдВрдХрд▓рд┐рдд рдЖрдЙрдЯрдкреБрдЯ CSS рдлрд╝рд╛рдЗрд▓ рдЬрд╛рдПрдЧреАред

рдпрд╛рдиреА рдЖрдк рджреЛрдиреЛрдВ рдХрд╛ рдорддрд▓рдм рдПрдХ рд╣реА рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдЙрд╕ рд╕рдордп рдХрд┐рдпрд╛ рдерд╛ред

рдпрд╣ рдЙрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕реНрдерд╛рди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдкреВрд░реНрдг рдЖрдЙрдЯрдкреБрдЯ рдкрде рдкрд░ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдирд┐рд░рдкреЗрдХреНрд╖-рдпреВрдЖрд░рдПрд▓ рдлрд╝рдВрдХреНрд╢рди рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрд╕ рд╕реНрдерд╛рди рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдЬрд╣рд╛рдВ рд╕рдВрдХрд▓рд┐рдд рдЖрдЙрдЯрдкреБрдЯ рд╕реАрдПрд╕рдПрд╕ рдлрд╝рд╛рдЗрд▓ рдЬрд╛рдПрдЧреАред

рдЬреИрд╕рд╛ рдХрд┐, URL рдпрд╛ рд░реВрдЯрдкрд╛рде рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рдЕрднреА рднреА рд▓рд╛рдЧреВ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдкрд░рд┐рднрд╛рд╖рд╛ рд╕реНрдерд╛рди рдХреЗ рдЖрдзрд╛рд░ рдкрд░? рдпрд╣ @lukeapage рдХреЗ рдореВрд▓ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рд▓рдЧрддрд╛ рд╣реИ, рдЬреЛ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ URL рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди URL _during compile_; рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП data-uri() рд╕реНрдерд╛рдиред

рдЗрд╕рд▓рд┐рдП рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдирд╛ рдереЛрдбрд╝рд╛ рдХрдард┐рди рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд▓реЛрдЧреЛрдВ рдиреЗ рд╕рдорд╛рди рдореБрджреНрджреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдмрд┐рд▓реНрдХреБрд▓ рд╕рдорд╛рди рдореБрджреНрджреЛрдВ рдкрд░ рдирд╣реАрдВред рдпрд╛рдиреА, рдХрд┐рд╕реА рд░рд┐рд╢реНрддреЗрджрд╛рд░ _source_ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╢рд╛рдпрдж рд░рд┐рд╢реНрддреЗрджрд╛рд░ _output_ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЕрд▓рдЧ рд╕рдорд╛рдзрд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдпрд╛ рд╢рд╛рдпрдж рдирд╣реАрдВ; рдпрд╣ рдкрдерд┐рдХ рддрд░реНрдХ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ; рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдбреЗрдЯрд╛-рдпреВрд░реА рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдХреЛрдИ рдкрде рдирд╣реАрдВ рдмрдирд╛рддрд╛ рд╣реИред

рд╢рд╛рдпрдж рд╣рдореЗрдВ resolve() рдЬреИрд╕рд╛ рдХреБрдЫ рдЪрд╛рд╣рд┐рдП? рдореБрдЭреЗ рдкрддрд╛ рдирд╣реАрдВ, рд╕рд┐рд░реНрдл рд╕реНрдкрд┐рдЯрдмреЙрд▓рд┐рдВрдЧ, рд▓реЗрдХрд┐рди url(resolve(file(), "my/path")) ? рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ @ miljan-aleksic рдХрд╛ рдорддрд▓рдм absolute() , рдЬрд┐рд╕рдореЗрдВ рдпрд╣ рдПрдХ рдкреВрд░реНрдг рдпреВрдЖрд░рдПрд▓ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░реЗрдЧрд╛ред рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдЕрднреА рднреА рдПрдХ рдЗрдирдкреБрдЯ рд▓реЗрдирд╛ рдЪрд╛рд╣рд┐рдП (рдЬреИрд╕реЗ file() , рдЗрд╕рдХреЗ рдЦрд┐рд▓рд╛рдл рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП)ред рдЕрдиреНрдпрдерд╛ рдЖрдк рдЙрд╕ рддрд░реНрдХ рдХреЛ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП file-resolve() рдЬреИрд╕рд╛ рдХреБрдЫ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди resolve() рдФрд░ file() рд░реВрдк рдореЗрдВ рджреЛ рдлрд╝рдВрдХреНрд╢рди рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

рдЗрд╕ рд╕рдм рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореБрд╢реНрдХрд┐рд▓ рд╣рд┐рд╕реНрд╕рд╛ рд╕рднреА рдкреБрдирд░реНрд▓реЗрдЦрди рдпреВрдЖрд░рдПрд▓ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреАрдЖрд░ рдорд░реНрдЬ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдм рдФрд░ рдЕрдзрд┐рдХ рдореЙрдбреНрдпреВрд▓ рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИред (https://github.com/less/less.js/pull/3248)ред рддреЛ рдЕрдЧрд░ рдпрд╣ рдПрдХ рдлрд╝рд╛рдЗрд▓-рд╕рд╛рдкреЗрдХреНрд╖ рдпреВрдЖрд░рдПрд▓ рджреЗрддрд╛ рд╣реИ, рддреЛ рдХреНрдпрд╛ рдЗрд╕реЗ рдЕрднреА рднреА рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ? рдореИрдВ рд╣рд╛рдВ рдорд╛рдиреВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд╣реЛрдирд╛ рд╣реЛрдЧрд╛ред

рд╣рд╛рдВ, рд╕рдВрдХрд▓реНрдк() рдФрд░ рдлрд╝рд╛рдЗрд▓() рдареАрдХ рд╡рд╣реА рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдореИрдВ рд╕рдордЭрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рдерд╛ред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕реЗ рдирд┐рдХрдЯ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд▓рд╛рдЧреВ рд╣реЛрддреЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред

@ miljan-aleksic рдареАрдХ рд╣реИ, рдпрд╣ рддрдм рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред

рдЕрд╕рд▓ рдореЗрдВ, file() рдмрд┐рд▓реНрдХреБрд▓ рд╕рд╣реА рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рд▓реМрдЯрд╛рдПрдЧрд╛ рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рдпрд╣ dir() рдЬреИрд╕рд╛ рд╣реЛрдЧрд╛ред рдФрд░ рдпрд╣ рд╢рд╛рдпрдж рдкреНрд░рддрд┐ рдлрд╝рд╛рдЗрд▓ рдПрдХ рдЪрд░ рд╕реНрдерд┐рд░рд╛рдВрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╡реНрд╣рд╛рдЯ рдЕрдмрд╛рдЙрдЯ:

data-uri(resolve(<strong i="10">@DIR</strong>, "my/path"))

рддреЛ, рджреЛ рдЪреАрдЬреЗрдВ рдЬреЛрдбрд╝реА рдЧрдИрдВ: 1) рдкрдереЛрдВ рдХреЛ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдХрд▓реНрдк () рдлрд╝рдВрдХреНрд╢рди, 2) рдПрдХ @DIR (рдФрд░ @FILE ?) рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рддреЗ рд╕рдордп рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рд░рдВрддрд░ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХрдорд╛рддреНрд░ рдореБрд╢реНрдХрд┐рд▓ рдмрд╛рдд рдпрд╣ рд╣реЛрдЧреА рдХрд┐ рдЗрдВрдЬреЗрдХреНрд╢рди рд╡рд╛рд▓реЗ рд╡рд░реНрд░реНрд╕ рдУрд╡рд░рд░рд╛рдЗрдб рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рдпрд╛ рд░реВрдЯ рдореЗрдВ рдЕрдиреНрдп рд╡рд░реНрд░реНрд╕ рдХреЗ рд╕рд╛рде рд╡рд┐рд▓рдп рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдЦрд┐рд▓рд╛рдл рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рдХрд╛рдлреА рдЖрд╕рд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╛ рдЙрдиреНрд╣реЗрдВ рд▓реЛрдЕрд░рдХреЗрд╕ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреИрд╕реЗ @arguments ? рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореИрдВ рд╕рдВрдШрд░реНрд╖реЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП @directory рдФрд░ @filename рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреВрдВрдЧрд╛ред рд╕рдмрд╕реЗ рдХрдо-рд╡рд╛рдИ рд╡рд┐рдХрд▓реНрдк рдХреНрдпрд╛ рд╣реИ?

рд╢рд╛рдпрдж рд╣рдореЗрдВ resolve() рдЬреИрд╕рд╛ рдХреБрдЫ рдЪрд╛рд╣рд┐рдП?

^ рдмрд┐рдВрдЧреЛред рдареАрдХ рд╣реИ рдХрд┐ред

рд╕рдмрд╕реЗ рдХрдо-рд╡рд╛рдИ рд╡рд┐рдХрд▓реНрдк рдХреНрдпрд╛ рд╣реИ?

рдореИрдВ Node.js-y рд╡рд┐рдХрд▓реНрдк рдХреЗ рд▓рд┐рдП рдЬрд╛рдКрдВрдЧрд╛: __dirname
рдпрд╣ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдЖрд╕рдкрд╛рд╕ рд░рд╣рд╛ рд╣реИ рдФрд░ рдкреНрд░рд╕рд┐рджреНрдз рд╣реИред рдХрдо рдореЗрдВ рд╕рдорд╛рди рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдореИрдВ Node.js-y рд╡рд┐рдХрд▓реНрдк рдХреЗ рд▓рд┐рдП рдЬрд╛рдКрдВрдЧрд╛: __dirname

рдПрд░... рдЬреЛ рдХрдо/рд╕реАрдПрд╕рдПрд╕ рдХреАрд╡рд░реНрдб рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рдПрдЧрд╛ рдФрд░ рди рд╣реА рдХрдо рдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдФрд░ рди рд╣реА рдлрд╝рдВрдХреНрд╢рди рд╕реЗрдореЗрдиреНрдЯрд┐рдХреНрд╕ред рд╣рдореЗрдВ рдЗрд╕рд╕реЗ рдмреЗрд╣рддрд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред @__dirname рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рдЕрднреА рднреА рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рдЕрдЬреАрдм рд╣реИред рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдлрд┐рдЯ рдирд╣реАрдВ рд╣реИред

рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рдЕрднреА рднреА рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рдЕрдЬреАрдм рд╣реИред рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдлрд┐рдЯ рдирд╣реАрдВ рд╣реИред

рдПрдХ рдбрдмрд▓ рд▓реАрдбрд┐рдВрдЧ рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдИ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ 'рд╕рд┐рд╕реНрдЯрдо рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдХреБрдЫ' рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЦрд╛рд╕рдХрд░ рдЬрдм рдЖрдВрддрд░рд┐рдХ рдЪрд░ рдЬреИрд╕реА рдЪреАрдЬреЛрдВ рдХреА рдмрд╛рдд рдЖрддреА рд╣реИред рддреЛ рдЖрдЙрдЯ-рдСрдлрд╝-рдкреНрд▓реЗрд╕рдиреЗрд╕ рд╡рд╣рд╛рдБ рдПрдХ рддрд░рд╣ рдХрд╛ рдмрд┐рдВрджреБ рд╣реИред

рдмреЗрд╢рдХ; рдЕрдЧрд░ рдЖрдкрдХреЛ рдпрд╣ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдк рд╣рдореЗрд╢рд╛ @dirname рдпрд╛ @dir-name рдЬреИрд╕реЗ рд╡реНрдпреБрддреНрдкрдиреНрди рдХреЗ рд╕рд╛рде рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдФрд░ рд╕реЛрдЪрдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рд╡рд░реНрддрдорд╛рди рдлрд╝рд╛рдЗрд▓ рдкрде рдХреЛ рдПрдХ рдЪрд░ рдХреЗ рд░реВрдк рдореЗрдВ _need_ рдХреНрдпреЛрдВ рдЙрдЬрд╛рдЧрд░ рдХрд░рддреЗ рд╣реИрдВ? рдХреНрдпрд╛ рдЗрд╕реЗ рд╡реИрдЪрд╛рд░рд┐рдХ resolve() рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд╣реА рдирд╣реАрдВ рдмреБрдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?

рдХреНрдпрд╛ рдЗрд╕реЗ рд╡реИрдЪрд╛рд░рд┐рдХ рд╕рдВрдХрд▓реНрдк () рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд╣реА рдирд╣реАрдВ рдмреБрдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?

рдФрд░ рд╣рдо рдЕрдкрдиреЗ рдкреНрд░рд╕реНрддрд╛рд╡ рдкрд░ рд╡рд╛рдкрд╕ рдЖ рдЧрдП, рдмрд╕ рдПрдХ рдЕрд▓рдЧ рдлрд╝рдВрдХреНрд╢рди рдирд╛рдо рдХреЗ рд╕рд╛рдеред рдореИрдВ рдЕрднреА рднреА рдЗрд╕реЗ рд╕рдмрд╕реЗ рдЬреНрдпрд╛рджрд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ, рд╕рдВрдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ рднреА рдмреЗрд╣рддрд░ ()ред

рдФрд░ рд╣рдо рдЕрдкрдиреЗ рдкреНрд░рд╕реНрддрд╛рд╡ рдкрд░ рд╡рд╛рдкрд╕ рдЖ рдЧрдП, рдмрд╕ рдПрдХ рдЕрд▓рдЧ рдлрд╝рдВрдХреНрд╢рди рдирд╛рдо рдХреЗ рд╕рд╛рдеред

рдХреА рддрд░рд╣ред

рдореБрдЭреЗ рдЬреЛ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдХреЙрд▓ рдХреЛ resolve() рдлрд╝рдВрдХреНрд╢рди рдкрд░ рд░рдЦрдиреЗ рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓ рдХреЗ рдпреВрдЖрд░рдПрд▓/рдкрде рдореЗрдВ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╡рд╣ рд╕реНрдерд╛рди рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП _рдЬреНрдЮрд╛рдд_ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрдВрджрд░ this рдПрдХ FunctionCaller рдЙрджрд╛рд╣рд░рдг рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ currentFileInfo рд╕рдВрдкрддреНрддрд┐ рд╣реЛрддреА рд╣реИред
рдЙрд╕ рдЧреБрдг рдХреЛ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХреЗ рдЕрдиреБрд░реВрдк Call AST рдиреЛрдб рдХреА рдлрд╝рд╛рдЗрд▓ рдЬрд╛рдирдХрд╛рд░реА рдореЗрдВ рдкреНрд░рд╛рд░рдВрдн рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЕрд░реНрдерд╛рдд

https://github.com/less/less.js/blob/4e903e8254cc20fec80fccd35794fb797949e653/lib/less/tree/call.js#L47

рдЕрдЧрд░ рдореИрдВ рдХреЛрдб рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдкрдврд╝ рд░рд╣рд╛ рд╣реВрдВ, рддреЛ рд╡рд╣рд╛рдВ рдлрд╝рд╛рдЗрд▓ рдЬрд╛рдирдХрд╛рд░реА рдЙрд╕ рд╕реНрдерд╛рди рдХреА рдлрд╝рд╛рдЗрд▓ рдЬрд╛рдирдХрд╛рд░реА рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИ рдЬрд╣рд╛рдВ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ _declared_ рд╣реИ - рд╡рд╣ рдлрд╝рд╛рдЗрд▓ рдирд╣реАрдВ рдЬрд╣рд╛рдВ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

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

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдФрд░ рд╕реЛрдЪрдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдлрд╝рд╛рдЗрд▓ рдкрде рдХреЛ рдПрдХ рдЪрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ? рдХреНрдпрд╛ рдЗрд╕реЗ рд╡реИрдЪрд╛рд░рд┐рдХ рд╕рдВрдХрд▓реНрдк () рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд╣реА рдирд╣реАрдВ рдмреБрдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?

рдЕрдЧрд░ рд╣рдореЗрдВ рдпрдХреАрди рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдХреЛ рднреА рд╡рд░реНрддрдорд╛рди рдлрд╝рд╛рдЗрд▓ рдпрд╛ рд╕рд╛рдорд╛рдиреНрдп рд░рд┐рдЬрд╝реЙрд▓реНрд╡рд░ рдлрд╝рдВрдХреНрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ ... рд╣реЛ рд╕рдХрддрд╛ рд╣реИ ... рдмрд╛рдд рдПрдХ рд╕реНрдкрд╖реНрдЯ рд╕реНрдерд╛рдиреАрдп рд╕рдВрд╕реНрдХрд░рдг рд╣реИ, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░реНрдп рдирд╣реАрдВ рд╣реИ, рдФрд░ рдпрд╣ рдХрд┐ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдЬреИрд╕реЗ рдХреЛрдИ рдЕрдиреНрдп рд╕рдорд╛рд░реЛрд╣ред рдпрд╣реА рдореЗрд░реА рдЕрд╕рд▓реА рдЪрд┐рдВрддрд╛ рд╣реИ, рд╢рдмреНрджрд╛рд░реНрде рд╣реИред рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдЖрдк рдЗрд╕реЗ рдХреНрдпрд╛ рдирд╛рдо рджреЗрддреЗ рд╣реИрдВ, рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ "рд╡рд░реНрддрдорд╛рди рдлрд╝рд╛рдЗрд▓" рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖ "рдорд╛рд░реНрдХрд░" рдирд╣реАрдВ рд╣реИ, рддреЛ рдпрд╣ рдХрд┐рд╕реА рдЕрдиреНрдп рдлрд╝рдВрдХреНрд╢рди рдХреА рддрд░рд╣ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдЗрдирдкреБрдЯ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЗрд╕реЗ рд╣рд▓ рдХрд░рддрд╛ рд╣реИред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдпрд╣ рдПрдХ рдРрд╕рд╛ рдХрд╛рд░реНрдп рд╣реИ рдЬреЛ рдЕрджреГрд╢реНрдп рдЗрдирдкреБрдЯ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╣рд▓ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдореБрдЭреЗ рдЪрд┐рдВрддрд┐рдд рдХрд░рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдЧрд░ рдлрд╝рдВрдХреНрд╢рди current-file-resolve() рддрд░рд╣ рдмреЗрд╣рдж рд╕реНрдкрд╖реНрдЯ рд╣реИ, рддреЛ рд╢рд╛рдпрдж рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рд╕реНрдкрд╖реНрдЯ рд╣реИред рдЕрдиреНрдпрдерд╛ рдЖрдк рдХреЗрд╡рд▓ рд▓реЛрдЧреЛрдВ рдХреЛ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдПрдХ рдорд┐рдХреНрд╕рд┐рди рдХреЙрд▓ рдиреЗ specialfunction() рдХреЛ рдЙрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╣рд▓ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛, рдЬрд┐рд╕рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдорд┐рдХреНрд╕рд┐рди рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рддреЛ, рдирд╣реАрдВ, рдПрдХ рд╕реНрдерд╛рдиреАрдп рд╕рдВрд╕реНрдХрд░рдг рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ _needed_ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрд░реНрде/рдЖрдЙрдЯрдкреБрдЯ/рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд╢рдмреНрджрд╛рд░реНрде рд╕реЗ рд╕реНрдкрд╖реНрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╣рдореНрдо...

рдареАрдХ рд╣реИред рдлрд┐рд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ resolve-url(url, [base]) рдлрд╝рдВрдХреНрд╢рди рд╣реИ - рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ base ; рдлрд╝рд╛рдЗрд▓ рдХреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЬрд┐рд╕рдореЗрдВ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рд▓рд┐рдЦрд╛/рдШреЛрд╖рд┐рдд/рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдлрд┐рд░ рдПрдХ declared-dir() рдлрд╝рдВрдХреНрд╢рди рд╣реИ рдЬреЛ рд╕рд┐рд░реНрдл this.fileInfo рдЦреАрдВрдЪрддрд╛ рд╣реИ рдФрд░ рдкрде рдХреЛ рдкрдХрдбрд╝ рд▓реЗрддрд╛ рд╣реИ, рдХреНрдпрд╛ рд▓реЗрдЦрдХ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкрде рдЦреАрдВрдЪрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ; рдХрд┐рд╕реА рднрд┐рдиреНрди рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдкрде рд▓реЗрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ; рдпрд╛ рдЗрд╕реЗ рдХрд┐рд╕реА рдЕрдиреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ URL рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд╣реАрдВ рд╣реИред

рдпрд╛рдиреА рдПрдХ рдлреБрд▓ рдлреЙрд░реНрдо рдХреЙрд▓ (рдмрд┐рдирд╛ рдирд┐рд╣рд┐рдд рдЖрдзрд╛рд░ рдХреЗ) рдХреБрдЫ рдРрд╕рд╛ рд╣реЛрдЧрд╛:

resolve-url("../foo", declared-dir())

... рдФрд░ рд╕рд┐рд░реНрдл рдХрд░рдиреЗ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрдЧрд╛

resolve-url("../foo")

... рдЬреЛ рдЖрд▓рд╕реА рдХреЗ рдмрд░рд╛рдмрд░ рдЙрддреНрд╕реБрдХ рд╣реИ

url("../foo")

рдЙрд╕ рддрд░рд╣ рд╕реЗ 'рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ' рдЗрдВрдЬреЗрдХреНрд╢рди рд╡рд╛рд▓реЗ рдЪрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреНрд▓рдЧрдЗрди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдПрдХ рд╕реЗрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИред рдФрд░ рд╣рдореЗрдВ рдЬрд┐рд╕ рдПрдХрдорд╛рддреНрд░ рдХреЛрд░ рдореИрдХреЗрдирд┐рдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╡рд╣ рд╣реИ рдпреВрдЖрд░рдПрд▓ рдХреЛ 'рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣рд▓' рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛, рддрд╛рдХрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░рд┐рдЬрд╝реЙрд▓реНрд╡рд░ рд▓реЙрдЬрд┐рдХ рдХреЛ resolve-url рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рдмрд╛рд╣рд░ рдЖрдиреЗ рд╡рд╛рд▓реЗ URL рдкрд░ рдЪрд▓рдиреЗ рд╕реЗ рд░реЛрдХрд╛ рдЬрд╛ рд╕рдХреЗред

рдкрд╛рдареНрдпрдХреНрд░рдо рдХреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдореЗрдВ рд╢рдмреНрджрд╛рд░реНрде рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдФрд░ рд╡рд╣ рдкреНрд░рд▓реЗрдЦрди рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рддреБрд▓рдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ url рдХреЗ рдЦрд┐рд▓рд╛рдл resolve-url рдЙрддреНрд╕реБрдХ рдФрд░ рдЖрд▓рд╕реА рдореВрд▓реНрдпрд╛рдВрдХрди / рд╕рдВрдХрд▓реНрдк рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

рдмрд╕ рдЕрдЧрд░ "рдЗрдВрдЬреЗрдХреНрд╢рди рд╡реИрд░рд┐рдПрдмрд▓" рд╡рд┐рдЪрд╛рд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ (w/o рдЕрддрд┐рд░рд┐рдХреНрдд рд╣реИрдХреНрд╕) рд╡реИрд╕реЗ рднреА рдХреНрдпреЛрдВрдХрд┐ рдЖрдпрд╛рддрд┐рдд рдлрд╛рдЗрд▓реЛрдВ рдХрд╛ рдПрдХ рд╣реА рджрд╛рдпрд░рд╛ рд╣реЛрддрд╛ рд╣реИред

<strong i="7">@__dir</strong>: "whatever";
// *everywhere* it's the only <strong i="8">@__dir</strong> value = the path of "c"
<strong i="9">@import</strong> "a";
<strong i="10">@import</strong> "b";
<strong i="11">@import</strong> "c";

рдлрд╝рдВрдХреНрд╢рди-рдЖрдзрд╛рд░рд┐рдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмреЛрд▓рддреЗ рд╣реБрдП, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ (рд▓реЗрдХрд┐рди рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛) рдХрд┐ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдкрде рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЕрднреА рднреА рд╕рдВрднрд╡ рд╣реИ рдЬрд╣рд╛рдВ рдлрд╝рдВрдХреНрд╢рди рдХреЛ this.context.? рдпрд╛ this.context.frames[?] рдореЗрдВ рдХрд╣реАрдВ рднреА рдмреБрд▓рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╛ рдРрд╕рд╛ред

рдПрдореНрдореНрдо, рддреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдмреЗрд╣рддрд░ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ?

@ рд╣реЗрдиреЗрдХреНрд╕реНрдЯ
рдПрдореНрдореНрдо, рддреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдмреЗрд╣рддрд░ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ?

рдЖрд▓рд╕реА рдореВрд▓реНрдпрд╛рдВрдХрди рдЗрд╕реЗ рдареАрдХ рд╕реЗ рд╣рд▓ рдХрд░рдирд╛ рдмрд╣реБрдд рдХрдард┐рди рдмрдирд╛рддрд╛ рд╣реИ, рдореБрдЭреЗ рдбрд░ рд╣реИред


@ рд╕рд╛рдд-рдЪрд░рдг-рдЕрдзрд┐рдХрддрдо
рдлрд╝рдВрдХреНрд╢рди-рдЖрдзрд╛рд░рд┐рдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмреЛрд▓рддреЗ рд╣реБрдП, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ (рд▓реЗрдХрд┐рди рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛) рдХрд┐ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдкрде рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЕрднреА рднреА рд╕рдВрднрд╡ рд╣реИ рдЬрд╣рд╛рдВ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЗрд╕рдХреЗ this.context.? рдпрд╛ this.context.frames[?] рдореЗрдВ рдХрд╣реАрдВ рднреА рдмреБрд▓рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╛ рдРрд╕рд╛ред

рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рдкрджрд╛рдиреБрдХреНрд░рдо рдореЗрдВ Call рдиреЛрдб рдЦреЛрдЬрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд╣рд╛рдБред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕