Less.js: 동기화 및 비동기 κ°€μ Έμ˜€κΈ°λ₯Ό νŠΈλ¦¬κ±°ν•˜λŠ” 방법

에 λ§Œλ“  2014λ…„ 12μ›” 07일  Β·  26μ½”λ©˜νŠΈ  Β·  좜처: less/less.js

less λŠ” ν˜„μž¬ fileManager loadFile λ˜λŠ” loadFileSync λ₯Ό ν˜ΈμΆœν•˜κΈ°λ‘œ κ²°μ •ν•©λ‹ˆκΉŒ? 이 μ½”λ“œ 에 λ”°λ₯΄λ©΄ isSync -parameterλ₯Ό μ„€μ •ν•΄μ•Ό ν•©λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ getFileManager ν˜ΈμΆœμ„ 짧게 κ²€μƒ‰ν•˜λ©΄ 이 μ˜΅μ…˜μ΄ lib/less/functions/data-uri.js μ—μ„œλ§Œ μ‚¬μš©λœλ‹€λŠ” 것을 μ•Œ 수 μžˆμŠ΅λ‹ˆλ‹€.

render() ν˜ΈμΆœν•  λ•Œ 이 μ˜΅μ…˜μ„ λͺ…μ‹œμ μœΌλ‘œ μ„€μ •ν•  수 μžˆμŠ΅λ‹ˆκΉŒ?

feature request medium priority stale

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

renderSync 아직 μžˆλ‚˜μš”? 그렇지 μ•Šμ€ 경우 동기 render λŒ€ν•œ ν•΄κ²° 방법이 μžˆμŠ΅λ‹ˆκΉŒ?

νŽΈμ§‘: Nvm. 이것에 κ±Έλ € λ„˜μ–΄μ§€λŠ” 미래의 μ‚¬λžŒμ„ μœ„ν•΄ 이것이 λ‚΄κ°€ ν•œ μΌμž…λ‹ˆλ‹€.

less.renderSync = function (input, options) {
    if (!options || typeof options != "object") options = {};
    options.sync = true;
    var css;
    this.render(input, options, function (err, result) {
        if (err) throw err;
        css = result.css;
    });
    return css;
};

λͺ¨λ“  26 λŒ“κΈ€

isSyncλŠ” λ Œλ”λ§ν•  μ˜΅μ…˜ κ°œμ²΄μ— 전달할 수 μžˆμŠ΅λ‹ˆλ‹€. data-uriλŠ” 항상
ν•¨μˆ˜λŠ” 비동기식일 수 μ—†κΈ° λ•Œλ¬Έμ— λ™κΈ°ν™”ν•©λ‹ˆλ‹€.

κ·ΈλŸ¬λ‚˜ importManager λŠ” getFileManager μ˜΅μ…˜μ„ 전달 ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€ ...

μ—¬κΈ°μ—μ„œ μ™„λ£Œ

https://github.com/less/less.js/blob/32dbbee247f76af00eb7577053eccad2ee5f6110/lib/less-browser/file-manager.js#L61

κ·Έ μ˜΅μ…˜μ€ 더 적은 μ½”μ–΄μ—μ„œ λ¬΄μ‹œλ˜κ³  λΈŒλΌμš°μ €μ—λ§Œ 적용되기 λ•Œλ¬Έμž…λ‹ˆλ‹€. λ”°λΌμ„œ λΈŒλΌμš°μ €λŠ” 항상 비동기라고 ν•˜λ©° μ˜΅μ…˜μ— 따라 동기화 λ˜λŠ” 비동기 λ©”μ»€λ‹ˆμ¦˜μ„ μ‚¬μš©ν•˜μ—¬ νŒŒμΌμ„ κ°€μ Έμ˜¬ 수 μžˆμŠ΅λ‹ˆλ‹€.

μ–Όλ§ˆλ‚˜ ν˜Όλž€μŠ€λŸ¬μš΄μ§€ μ•Œ 수 μžˆμŠ΅λ‹ˆλ‹€. 문제λ₯Ό μΌμœΌν‚€λŠ”κ°€?

λ‚΄κ°€ μ¦‰μ‹œ λ³΄λŠ” ν•œ κ°€μ§€λŠ” νŽ˜μ΄μ§€ λ‘œλ“œ μ‹œ μ˜΅μ…˜μ— μ˜ν•΄μ„œλ§Œ 영ν–₯을 λ°›μœΌλ―€λ‘œ λ‚˜μ€‘μ— μ„€μ •λ˜κ±°λ‚˜ μ˜΅μ…˜μœΌλ‘œ μ „λ‹¬λ˜λ©΄ λ¬΄μ‹œλ©λ‹ˆλ‹€.

κΈ€μŽ„, μ•„λ§ˆλ„ λ‚΄ μ‚¬μš© 사둀λ₯Ό μ„€λͺ…ν•΄μ•Ό ν•  κ²ƒμž…λ‹ˆλ‹€.

webpack 에 λŒ€ν•΄ 덜 λ‘œλ” λ₯Ό μž‘μ„±ν–ˆμŠ΅λ‹ˆλ‹€ . webpackμ—λŠ” 자체 ν•΄κ²° λ©”μ»€λ‹ˆμ¦˜μ΄ 있기 λ•Œλ¬Έμ— ν”ŒλŸ¬κ·ΈμΈμ„ μ‚¬μš©ν•˜μ—¬ 파일 κ΄€λ¦¬μžλ₯Ό 톡해 더 적은 νŒŒμΌμ— μ—°κ²°ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

Webpack은 동기화 및 비동기 λ‘œλ”λ₯Ό μ§€μ›ν•˜μ§€λ§Œ λͺ¨λ“  νŒŒμΌμ„ 동기화 λ˜λŠ” λΉ„λ™κΈ°μ μœΌλ‘œ λ Œλ”λ§ν•˜λ„λ‘ 덜 μ§€μ‹œν•˜λŠ” 방법을 찾지 λͺ»ν–ˆμŠ΅λ‹ˆλ‹€. ν˜„μž¬ 항상 loadFile ν˜ΈμΆœν•©λ‹ˆλ‹€. λ”°λΌμ„œ 동기 컴파일이 μš”μ²­λ  λ•Œ loadFileSync λ₯Ό ν˜ΈμΆœν•˜κΈ° μœ„ν•΄ 더티 ν•΅ 을 μ‚¬μš©ν–ˆμŠ΅λ‹ˆλ‹€. 운 μ’‹κ²Œλ„ 콜백이 λ™κΈ°μ‹μœΌλ‘œ 호좜될 λ•Œ λ™κΈ°μ‹μœΌλ‘œ 덜 μž‘λ™ν•©λ‹ˆλ‹€(λ¬Όλ‘  정상적인 μƒν™©μ—μ„œλŠ” μˆ˜ν–‰λ˜μ§€ μ•Šμ•„μ•Ό 함).

μ•Œ κ² μ–΄μš”...

비동기 μ˜΅μ…˜μ„ 더 적은 μ»¨ν…μŠ€νŠΈλ‘œ μ΄λ™ν•œ λ‹€μŒ 이λ₯Ό μ‚¬μš©ν•˜μ—¬ μ œμ•ˆν•œ λŒ€λ‘œ μ–΄λ–€ ν˜ΈμΆœμ„ μˆ˜ν–‰ν• μ§€ κ²°μ •ν•΄μ•Ό ν•œλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€. λΈŒλΌμš°μ € 파일 κ΄€λ¦¬μžμ— μ•½κ°„μ˜ 변경이 ν•„μš”ν•  수 μžˆμ§€λ§Œ 쒋은 λ¦¬νŒ©ν„°κ°€ 될 것이라고 μƒκ°ν•©λ‹ˆλ‹€.

λ©‹μžˆλŠ”!

단 ν•˜λ‚˜μ˜ λ¬Έμ œκ°€ μžˆμŠ΅λ‹ˆλ‹€. callback λ₯Ό μˆ˜λ½ν•˜λ©΄μ„œ λ™κΈ°μ μœΌλ‘œ 무언가λ₯Ό ν•˜λŠ” 것은 맀우 이둀적인 μΌμž…λ‹ˆλ‹€( render -function이 ν•˜λŠ” κ²ƒμ²˜λŸΌ). λ‹€μŒκ³Ό 같은 sync -μ˜΅μ…˜μ„ μ œμ•ˆν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

less.render(
    input,
    { ... sync: true ... },
    function (err, result) {
    }
);

?

Imho 콜백이 λ™κΈ°μ μœΌλ‘œ ν˜ΈμΆœλ˜λŠ” 것이 μ΄μƒν•©λ‹ˆλ‹€. λ‹€μŒκ³Ό 같은 APIλ₯Ό κΈ°λŒ€ν•©λ‹ˆλ‹€.

// async
less.render(input, option, callback);

// sync
var result = less.renderSync(input, option);

λ„€ λ§žμŠ΅λ‹ˆλ‹€. 그게 더 μ’‹μŠ΅λ‹ˆλ‹€.

+1
μ½œλ°±μ—μ„œλ§Œ μ½”λ“œ 싀행을 μ œν•œν•˜μ§€ μ•Šλ„λ‘ renderSync κ΅¬ν˜„μ„ κ³ λ €ν•˜λŠ” 것도 맀우 μœ μš©ν•œ 것 κ°™μŠ΅λ‹ˆλ‹€. 콜백 λ²”μœ„μ—μ„œ console.err λ˜λŠ” throw new Error() λ˜λŠ” μ˜λ„μ μΈ JavaScript 였λ₯˜μ™€ 같은 λ§Žμ€ λ©”μ„œλ“œλŠ” μ½˜μ†”μ— 아무 것도 μΈμ‡„ν•˜μ§€ μ•Šκ³  μ½”λ“œ μ‹€ν–‰λ§Œ μ€‘μ§€ν•˜μ—¬ 잠재적으둜 좔적할 수 μ—†λŠ” λ²„κ·Έλ‘œ μ΄μ–΄μ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€. λ‚˜λŠ”μ΄ 행동이 μΌμ–΄λ‚˜μ„œλŠ” μ•ˆλœλ‹€κ³  상상할 κ²ƒμž…λ‹ˆλ‹€.

λ‚΄ νŠΉλ³„ν•œ 경우 renderSync λͺ…령쀄 μœ ν‹Έλ¦¬ν‹°μ—μ„œ μ‚¬μš©λ˜λ©° 맀번 λͺ¨λ“  좜λ ₯κ³Ό 였λ₯˜κ°€ μˆœμ„œλŒ€λ‘œ μΈμ‡„λ˜λ„λ‘ 약속을 μ‚¬μš©ν•˜μ—¬ 콜백 흐름을 μ œμ–΄ν•˜λŠ” β€‹β€‹λŒ€μ‹  renderSyncλ₯Ό μ‚¬μš©ν•˜κ³  그것에 λŒ€ν•΄ κ±±μ •ν•˜κΈ° μœ„ν•΄.

(문제 자체λ₯Ό λΉ„ν•˜ν•˜λŠ” 것이 μ•„λ‹ˆλΌ λ¬Έμ œκ°€ 더 이상 이상해지지 μ•Šλ„λ‘ ν•˜κΈ° μœ„ν•œ κ²ƒμž…λ‹ˆλ‹€.)

Imho 콜백이 λ™κΈ°μ μœΌλ‘œ ν˜ΈμΆœλ˜λŠ” 것이 μ΄μƒν•©λ‹ˆλ‹€.

이것은 κ³Όμž₯μž…λ‹ˆλ‹€... 이 μ½”λ“œ
μ½œλ°±μ€ 단지 콜백일 뿐이며 κ·Έ μžμ²΄λ‘œλŠ” 동기화/비동기와 아무 관련이 μ—†μŠ΅λ‹ˆλ‹€.

μ’‹μ•„μš”, callback : wink: λΌλŠ” μš©μ–΄μ— λŒ€ν•΄ 이야기할 ν•„μš”κ°€ μžˆμŠ΅λ‹ˆλ‹€

μΌλΆ€λŠ” forEach a callback ( MDN λ“± )에 μ „λ‹¬λœ ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•©λ‹ˆλ‹€. λ‚˜μ—κ²Œ μ½œλ°±μ€ μž‘μ—…μ΄ μ™„λ£Œλ  λ•Œ ν˜ΈμΆœλ˜λŠ” 것이기 λ•Œλ¬Έμ— κ·Έλ ‡κ²Œ λΆ€λ₯΄μ§€ μ•Šμ„ κ²ƒμž…λ‹ˆλ‹€.

그리고 콜백이 λ…Έλ“œμ˜ 였λ₯˜ κ·œμΉ™μ„ λ”°λ₯΄κ³  첫 번째 μΈμˆ˜κ°€ null μ΄κ±°λ‚˜ 였λ₯˜μΈ 경우 λΉ„λ™κΈ°μ‹μœΌλ‘œ _항상_ ν˜ΈμΆœν•  μΆ©λΆ„ν•œ 이유 κ°€ μžˆμŠ΅λ‹ˆλ‹€.

μΌλΆ€λŠ” forEach μ½œλ°±μ— μ „λ‹¬λœ ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•©λ‹ˆλ‹€.

λˆ„κ΅°κ°€κ°€ node λ₯Ό λ„ˆλ¬΄ 많이 μ‚¬μš©ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€ ;) λͺ¨λ‘κ°€ 이것을 "콜백"이라고 λΆ€λ¦…λ‹ˆλ‹€. λ”°λΌμ„œ "μž‘μ—…μ΄ μ™„λ£Œλ˜μ—ˆμ„ λ•Œ ν˜ΈμΆœλ˜λŠ” 콜백 ν•¨μˆ˜"에 κ΄€ν•œ 것이라면 "비동기 콜백"에 μ§€λ‚˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

ν•˜μ§€λ§Œ 신경쓰지 λ§ˆμ„Έμš”. μ£„μ†‘ν•©λ‹ˆλ‹€. μ €λŠ” CO처럼 듀리고 이 μˆœμ „νžˆ 언어적 토둠을 μ‹œμž‘ν•˜λ €λŠ” μ˜λ„κ°€ μ•„λ‹ˆμ—ˆμŠ΅λ‹ˆλ‹€(단지 μš°λ¦¬κ°€ λ™μΌν•œ μ–Έμ–΄λ₯Ό λ§ν•˜κ³  λ¬Έμ„œμ—μ„œ μ‹€μ œλ‘œ less.render κ°€ λ™κΈ°μ‹μž„μ„ μ–ΈκΈ‰ν•˜λ„λ‘ ν•˜κ³  μ‹Άμ—ˆμŠ΅λ‹ˆλ‹€).

μΆ”μ‹  더 λͺ…ν™•νžˆν•˜κΈ° μœ„ν•΄ :

@kwketh

이 less.render 양식은 λͺ‡ λ…„ λ™μ•ˆ μ‘΄μž¬ν•΄ μ™”μœΌλ©°, 수천 개의 μŠ€λ‹ˆνŽ«μ„ κΉ¨κΈ° μœ„ν•΄ 아무 것도 μ•„λ‹Œ κ²ƒμœΌλ‘œλΆ€ν„° λ³€κ²½ν•  수 μ—†μŠ΅λ‹ˆλ‹€.

@seven-phases-max

κ·€ν•˜μ˜ 닡변에 κ°μ‚¬λ“œλ¦½λ‹ˆλ‹€. λͺ¨λ‘ 도움이 λ©λ‹ˆλ‹€. μ½œλ°±μ— κ΄€ν•œ κ·€ν•˜μ˜ λͺ¨λ“  μ˜κ²¬μ— λ™μ˜ν•©λ‹ˆλ‹€. λ‚˜λŠ” .render μ½”λ“œλ₯Ό μ•„μ£Ό κ°„λž΅ν•˜κ²Œ μ‚΄νŽ΄λ³΄μ•˜κ³  당신이 μ˜³μ•˜μŠ΅λ‹ˆλ‹€. μž‘μ„±λœ ν˜•μ‹μ€ λͺ¨λ‘ μ½œλ°±μ„ μ€‘μ‹¬μœΌλ‘œ λŒμ•„κ°€λ©° renderSync λ₯Ό κ°–λŠ” 것이 쉽지도 합리적이지도 μ•Šμ€ 것 κ°™μŠ΅λ‹ˆλ‹€.

λ‚΄ λ¬Έμ œλŠ” μ–΄λ–»κ²Œ λ“  λ‹€λ₯΄μ§€λ§Œ 관련이 μžˆμŠ΅λ‹ˆλ‹€ (https://github.com/less/less.js/issues/2546). renderSync κΈ°λŠ₯을 κ΅¬ν˜„ν•˜λ©΄ λ‚΄ λ¬Έμ œκ°€ ν•΄κ²°λ˜μ§€λ§Œ ꢁ극적인 μ†”λ£¨μ…˜μ€ μ•„λ‹™λ‹ˆλ‹€.

빨리 λ΄μ£Όμ‹€λž˜μš”? 정말 κ°μ‚¬ν•©λ‹ˆλ‹€.

감사 ν•΄μš”.

λˆ„κ΅°κ°€ λ„ˆλ¬΄ λ§Žμ€ λ…Έλ“œλ₯Ό μ‚¬μš©ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

그게 μ‚¬μ‹€μž…λ‹ˆλ‹€.

κ·ΈλŸ¬λ‚˜ λ…Έλ“œμ˜ 콜백 κ·œμΉ™μ€ 잘 μ •λ¦½λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. 이 경우 콜백이 항상 λΉ„λ™κΈ°μ‹μœΌλ‘œ ν˜ΈμΆœλœλ‹€κ³  κ°€μ •ν•©λ‹ˆλ‹€.

μΆ”κ°€: 였λ₯˜κ°€ λ°œμƒν–ˆμ„ λ•Œ 였λ₯˜λŠ” μ–΄λ–»κ²Œ μ²˜λ¦¬λ©λ‹ˆκΉŒ? (λŒ€λΆ€λΆ„μ˜ 동기화 API와 같이) λ˜μ Έμ§€κ±°λ‚˜ μ½œλ°±μ— 인수둜 μ „λ‹¬λ©λ‹ˆκΉŒ?

ν˜„μž¬ APIκ°€ λͺ¨ν˜Έν•˜λ‹€λŠ” κ²ƒλΏμž…λ‹ˆλ‹€(적어도 imho).

renderSync 아직 μžˆλ‚˜μš”? 그렇지 μ•Šμ€ 경우 동기 render λŒ€ν•œ ν•΄κ²° 방법이 μžˆμŠ΅λ‹ˆκΉŒ?

νŽΈμ§‘: Nvm. 이것에 κ±Έλ € λ„˜μ–΄μ§€λŠ” 미래의 μ‚¬λžŒμ„ μœ„ν•΄ 이것이 λ‚΄κ°€ ν•œ μΌμž…λ‹ˆλ‹€.

less.renderSync = function (input, options) {
    if (!options || typeof options != "object") options = {};
    options.sync = true;
    var css;
    this.render(input, options, function (err, result) {
        if (err) throw err;
        css = result.css;
    });
    return css;
};

이 κΈ°λŠ₯이 μ‹€μ œλ‘œ κ΅¬ν˜„λ©λ‹ˆκΉŒ? λ¬Έμ„œκ°€ μžˆμŠ΅λ‹ˆκΉŒ? async -μ˜΅μ…˜λ§Œ 찾을 수 μžˆμŠ΅λ‹ˆλ‹€.

μ‹€μ œλ‘œ μ§€μ›λ˜λŠ”μ§€ μ—¬λΆ€λŠ” μ•Œ 수 μžˆμ§€λ§Œ ν˜„μž¬ λ‚΄κ°€ ν•œ μž‘μ—…μ΄ μ €μ—κ²Œ νš¨κ³Όμ μ΄λΌλŠ” 것을 μ•Œκ³  μžˆμœΌλ―€λ‘œ .... μ–΄κΉ¨λ₯Ό μœΌμ“±ν•©λ‹ˆλ‹€.

@Aarilight λŒ€λ‹¨νžˆ κ°μ‚¬ν•©λ‹ˆλ‹€, κ·€ν•˜μ˜ μ½”λ“œλŠ” λ§Žμ€ 도움이 λ˜μ—ˆμŠ΅λ‹ˆλ‹€

이 동기식 콜백 λ™μž‘μ€ 정말 직관적이지 μ•ŠμŠ΅λ‹ˆλ‹€.

@Aarilight 그것은 λ‚˜λ₯Ό μœ„ν•΄ μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€ =(
λ‚˜λŠ” μ‹œλ„ν–ˆλ‹€

less.render(css, {sync : true}, (e, result) =>{
        if(e) {
         console.error(e)
    }

        output = result;
        return result
    });

https://github.com/less/less.js/blob/master/lib/less/render.js 기둝

            console.log('1')
            this.parse(input, options, function(err, root, imports, options) {
                console.log('2')
                if (err) { return callback(err); }

                var result;
                console.log('3')
                try {
                    console.log('4')
                    var parseTree = new ParseTree(root, imports);
                    console.log('5')
                    result = parseTree.toCSS(options);
                }
                catch (err) { 
                    console.log('6')
                    return callback(err); 
                }

                console.log('7')
                callback(null, result);
            });
            console.log('8')

일뢀 νŒŒμΌμ—λŠ” 1, 8, 2,3,4,5,6,7이 ν‘œμ‹œλ©λ‹ˆλ‹€.

-1 λ Œλ”λ₯Ό render 및 renderSync 둜 λΆ„ν• ν•©λ‹ˆλ‹€. μ–΄μƒ‰ν•œ Node.js κ·œμΉ™μž…λ‹ˆλ‹€. 그리고 grunt / gulp / accord λ˜λŠ” JS 객체λ₯Ό μ§€μ •λœ κΈ°λŠ₯으둜 μ „λ‹¬ν•˜λŠ” less에 ν†΅ν•©λœ 기타 μ›Œν¬ν”Œλ‘œμ— 동기화 μ˜΅μ…˜μ„ λ³΄λ‚΄λŠ” 것을 ν—ˆμš©ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. IMO 비동기 μ˜΅μ…˜μ„ μ‚¬μš©ν•  λ•Œ 선택적 μ½œλ°±μ„ μ „λ‹¬ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.

또 λ‹€λ₯Έ μ˜΅μ…˜: λΌμ΄λΈŒλŸ¬λ¦¬κ°€ μ‹œμž‘ν•˜λŠ” 것을 λ³Έ 것은 두 경우 λͺ¨λ‘ μ‹€μ œλ‘œ 약속을 λ°˜ν™˜ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. 그런 λ‹€μŒ sync/async μ‚¬μ΄μ—μ„œ λ³€κ²½λ˜λŠ” λͺ¨λ“  것은 약속이 이행될 λ•Œμ΄μ§€λ§Œ κ²°κ³Όλ₯Ό μ²˜λ¦¬ν•˜λŠ” μ½”λ“œλŠ” μ •ν™•νžˆ λ™μΌν•©λ‹ˆλ‹€.

그리고 btw.:

{sync: true}

그런 μ˜΅μ…˜μ΄ μ—†μŠ΅λ‹ˆλ‹€ .

-1 λ Œλ”λ₯Ό render 및 renderSync둜 λΆ„ν• ν•©λ‹ˆλ‹€. μ–΄μƒ‰ν•œ Node.js κ·œμΉ™μž…λ‹ˆλ‹€.

μ™„μ „ 주관적인 생각 μ•„λ‹Œκ°€μš”? 단일 κΈ°λŠ₯μ—μ„œ 비동기와 동기화λ₯Ό κ²°ν•©ν•˜λŠ” IMHOλŠ” (λͺ‡λͺ‡ μ˜ˆμ™ΈλŠ” μžˆμ§€λ§Œ) λ”μ°ν•œ μ•ˆν‹° νŒ¨ν„΄μž…λ‹ˆλ‹€. 쑰건문으둜 μ–΄μˆ˜μ„ ν•œ μ½”λ“œλ₯Ό μƒμ„±ν•˜κ³ , μœ μ§€ 관리가 더 μ–΄λ ΅κ³ , ν•œ 가지λ₯Ό 잘 μˆ˜ν–‰ν•˜λŠ” λͺ…ν™•ν•˜κ²Œ μ •μ˜λ˜κ³  λ¬Έμ„œν™”λœ ν•¨μˆ˜λ³΄λ‹€ μ‚¬μš©μžμ—κ²Œ 훨씬 더 ν˜Όλž€μŠ€λŸ½μŠ΅λ‹ˆλ‹€. κ·Έλƒ₯ λ‚΄ 2c

μ™„μ „ 주관적인 생각 μ•„λ‹Œκ°€μš”?

예.

κ·ΈλŸΌμ—λ„ λΆˆκ΅¬ν•˜κ³ , λ‚˜μ˜ λ‹€λ₯Έ μš”μ μ€ 주관적이지 μ•ŠμŠ΅λ‹ˆλ‹€. 즉, ν•¨μˆ˜κ°€ λΆ„ν• λœ 경우 μ—…λ°μ΄νŠΈν•΄μ•Ό ν•  수 μžˆλŠ” λΉŒλ“œ ν”„λ‘œμ„ΈμŠ€μ—μ„œ Lessκ°€ μ‚¬μš©λ©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄: ν˜„μž¬ ν•œ ν”„λ‘œμ νŠΈμ— μ‚¬μš©ν•˜κ³  μžˆλŠ” Accord(https://github.com/jenius/accord)λŠ” μ—¬λŸ¬ 컴파일러λ₯Ό 단일 API둜 μΆ”μƒν™”ν•˜κ³  일반적으둜 엔진에 ν•„μš”ν•œ κΈ°λŠ₯에 객체λ₯Ό μ „λ‹¬ν•©λ‹ˆλ‹€. λ”°λΌμ„œ κ°œλ°œμžκ°€ μ§€μ •ν•˜λŠ” Less μ˜΅μ…˜μ„ 기반으둜 μ‚¬μš©λ˜λŠ” κΈ°λŠ₯을 μ „ν™˜ν•˜λŠ” 것은 큰 λ¬Έμ œκ°€ μ•„λ‹ˆμ§€λ§Œ 영ν–₯을 λ―ΈμΉ˜λŠ” 라이브러리의 μˆ˜λŠ” ν™•μ‹€ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. 그것은 단지 μ•Œμ•„μ•Ό ν•  μ‚¬ν•­μž…λ‹ˆλ‹€.

ν˜„μž¬λ‘œμ„œλŠ” μ˜΅μ…˜μ— syncImport: true λ₯Ό μΆ”κ°€ν•˜λ©΄ 이 λ¬Έμ œκ°€ ν•΄κ²°λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

(λ¬Έμ„œμ—λŠ” μ—†μŠ΅λ‹ˆλ‹€... μ†ŒμŠ€ μ½”λ“œμ—μ„œ μš°μ—°νžˆ λ°œκ²¬ν•  수 μžˆμ„ 만큼 운이 μ’‹μ•˜μŠ΅λ‹ˆλ‹€.)

이 λ¬Έμ œλŠ” 졜근 ν™œλ™μ΄ μ—†μ—ˆκΈ° λ•Œλ¬Έμ— μžλ™μœΌλ‘œ 였래된 κ²ƒμœΌλ‘œ ν‘œμ‹œλ˜μ—ˆμŠ΅λ‹ˆλ‹€. 더 이상 ν™œλ™μ΄ μ—†μœΌλ©΄ νμ‡„λ©λ‹ˆλ‹€. κ·€ν•˜μ˜ 기여에 κ°μ‚¬λ“œλ¦½λ‹ˆλ‹€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰