λ¬λ¦¬κΈ°
lessc main.less build.css
μ€λ₯ λ° λΉλ νμΌμ μΆλ ₯νμ§ μμ΅λλ€.
nodemon
λ‘ μ€ννλ©΄ λ λ§μ μ 보λ₯Ό μ»μ μ μμ΅λλ€.
βΊ nodemon -e less --exec 'lessc src/main.less build.css'
(node) v8::ObjectTemplate::Set() with non-primitive values is deprecated
(node) and will stop working in the next major release.
==== JS stack trace =========================================
Security context: 0x36610d2c9fa9 <JS Object>#0#
1: .node [module.js:568] [pc=0x1aa0081d0f64] (this=0x225da61d89b9 <an Object with map 0x7af7e117be1>#1#,module=0x2666c00042f1 <a Module with map 0x7af7e1181b9>#2#,filename=0x2666c0004251 <String[136]: /Users/zigomir/.nvm/versions/node/v6.0.0/lib/node_modules/nodemon/node_modules/fsevents/lib/binding/Release/node-v48-darwin-x64/fse.node>)
2: load [module.js:456] [pc=0x1aa008138e72] (this=0x2666c00042f1 <a Module with map 0x7af7e1181b9>#2#,filename=0x2666c0004251 <String[136]: /Users/zigomir/.nvm/versions/node/v6.0.0/lib/node_modules/nodemon/node_modules/fsevents/lib/binding/Release/node-v48-darwin-x64/fse.node>)
3: tryModuleLoad(aka tryModuleLoad) [module.js:415] [pc=0x1aa00813899d] (this=0x36610d204189 <undefined>,module=0x2666c00042f1 <a Module with map 0x7af7e1181b9>#2#,filename=0x2666c0004251 <String[136]: /Users/zigomir/.nvm/versions/node/v6.0.0/lib/node_modules/nodemon/node_mo 1: v8::Template::Set(v8::Local<v8::Name>, v8::Local<v8::Data>, v8::PropertyAttribute)
2: fse::FSEvents::Initialize(v8::Local<v8::Object>)
3: node::DLOpen(v8::FunctionCallbackInfo<v8::Value> const&)
4: v8::internal::FunctionCallbackArguments::Call(void (*)(v8::FunctionCallbackInfo<v8::Value> const&))
5: v8::internal::MaybeHandle<v8::internal::Object> v8::internal::(anonymous namespace)::HandleApiCallHelper<false>(v8::internal::Isolate*, v8::internal::(anonymous namespace)::BuiltinArguments<(v8::internal::BuiltinExtraArguments)1>)
6: v8::internal::Builtin_HandleApiCall(int, v8::internal::Object**, v8::internal::Isolate*)
7: 0x1aa00800961b
8: 0x1aa0081d0f64
(node) v8::ObjectTemplate::Set() with non-primitive values is deprecated
(node) and will stop working in the next major release.
==== JS stack trace =========================================
Security context: 0x36610d2c9fa9 <JS Object>#0#
1: .node [module.js:568] [pc=0x1aa0081d0f64] (this=0x225da61d89b9 <an Object with map 0x7af7e117be1>#1#,module=0x2666c00042f1 <a Module with map 0x7af7e1181b9>#2#,filename=0x2666c0004251 <String[136]: /Users/zigomir/.nvm/versions/node/v6.0.0/lib/node_modules/nodemon/node_modules/fsevents/lib/binding/Release/node-v48-darwin-x64/fse.node>)
2: load [module.js:456] [pc=0x1aa008138e72] (this=0x2666c00042f1 <a Module with map 0x7af7e1181b9>#2#,filename=0x2666c0004251 <String[136]: /Users/zigomir/.nvm/versions/node/v6.0.0/lib/node_modules/nodemon/node_modules/fsevents/lib/binding/Release/node-v48-darwin-x64/fse.node>)
3: tryModuleLoad(aka tryModuleLoad) [module.js:415] [pc=0x1aa00813899d] (this=0x36610d204189 <undefined>,module=0x2666c00042f1 <a Module with map 0x7af7e1181b9>#2#,filename=0x2666c0004251 <String[136]: /Users/zigomir/.nvm/versions/node/v6.0.0/lib/node_modules/nodemon/node_mo 1: v8::Template::Set(v8::Local<v8::Name>, v8::Local<v8::Data>, v8::PropertyAttribute)
2: fse::FSEvents::Initialize(v8::Local<v8::Object>)
3: node::DLOpen(v8::FunctionCallbackInfo<v8::Value> const&)
4: v8::internal::FunctionCallbackArguments::Call(void (*)(v8::FunctionCallbackInfo<v8::Value> const&))
5: v8::internal::MaybeHandle<v8::internal::Object> v8::internal::(anonymous namespace)::HandleApiCallHelper<false>(v8::internal::Isolate*, v8::internal::(anonymous namespace)::BuiltinArguments<(v8::internal::BuiltinExtraArguments)1>)
6: v8::internal::Builtin_HandleApiCall(int, v8::internal::Object**, v8::internal::Isolate*)
7: 0x1aa00800961b
8: 0x1aa0081d0f64
Less μ체λ ObjectTemplate.Set
ν¨μλ₯Ό μ¬μ©νμ§ μμΌλ―λ‘ μ’
μμ± μ€ νλμΌ μ μμ΅λλ€. νμ¬ λ§μ€ν°μλ κΈ΄ μ’
μμ± μ
λ°μ΄νΈ 체μΈμ΄ μμΌλ―λ‘ v6
νΈν 릴리μ€λ₯Ό μ»λ κ²μ΄ μΌλ§λ μ΄λ €μ΄μ§ μμ§ λ§νκΈ° μ΄λ ΅μ΅λλ€. μ€μ€λ‘ λ κΉμ΄ μ‘°μ¬νκ³ ν¨μΉ/PRμ μ μνμμμ€.
κ·Έκ²μ nodemonμ λ¬Έμ μ²λΌ 보μ λλ€.
κ°μ κ²μλ³΄κ³ . μ¬μν .less νμΌμμ lesscλ₯Ό μ€ννλ©΄ μμΈ λͺ¨λμμλ Node.js v6μμ λΉλ νμΌκ³Ό μ€λ₯κ° μΆλ ₯λμ§ μμ΅λλ€.
μμΈμ μ°Ύμμ΅λλ€.
νμ¬ κ²μλ Less λ²μ μ undefined
path.dirname()
λ₯Ό νΈμΆνμ¬ λ
Έλ v6μμ μ€λ₯λ₯Ό λ°μμν΅λλ€. μ΄κ²μ μ΄λ―Έ ec04a03f1cba3a092d5cd7f7c5d8e28bb43c1932μ μν΄ ν΄κ²°λμμ§λ§ μμ§ κ²μλμ§ μμμ΅λλ€. lessc
μ νμ¬ κ΅¬νμ΄ Less μμ²΄λ‘ μΈν΄ λ°μνλ λͺ¨λ μ€λ₯λ₯Ό μΌν€κΈ° λλ¬Έμ μ€λ₯κ° λ°μνμ§ μμ΅λλ€. μ΄ λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄ PRμ λ§λ€μμ΅λλ€.
μ, μ΄λ μͺ½μ λ³ν©ν κΉμ? #2882 λλ #2884? :)
κ·Έλ€μ λ κ°μ§ λ€λ₯Έ λ¬Έμ λ₯Ό ν΄κ²°ν©λλ€.
κ·Έλμ λ λ€? (λ λ€ μ½κ° κ²ΉμΉκ³ λ³ν©νλ €λ©΄ μΆκ° νΈμ§μ΄ νμνκΈ° λλ¬Έμ 묻μ΅λλ€.)
λ€λ₯Έ νλλ process.exit()
λ₯Ό μ§μ μ¬μ©ν©λλ€. μ΄λ stdout/stderrμ΄ νλ¬μλμ§ μλλ‘ λ°©μ§ν΄μΌ ν©λλ€.
@evanlucas process.exit()
λ₯Ό μ§μ νΈμΆν λ λ°μνλ μ΄ λ¬Έμ λ₯Ό μ΄λ»κ² μ¬νν μ μλμ§ μ€λͺ
ν΄ μ£Όμκ² μ΅λκΉ? process.exit()
λ λλ¬Έ κ²½μ°μ μ¬μ©ν΄μΌ νλ€λ λ° λμν©λλ€. μΌλ°μ μΌλ‘ μ κΈ°μ μΌλ‘ μ’
λ£νκ±°λ μ€λ₯λ₯Ό λ°μμμΌ μ’
λ£νλ κ²μ΄ λ λ«κΈ° λλ¬Έμ
λλ€. κ·Έλ¬λ μ΄ κ²½μ° μμλλ μ€λ₯μ λν μ€ν μΆμ μ νμνκ³ μΆμ§ μκΈ° λλ¬Έμ μ€λ₯ μ½λκ° μλ process.exit()
κ° λ μ μ νλ€κ³ μκ°ν©λλ€. κ·Έλ¦¬κ³ μ€νμ κ³μνμ§λ§ νλκ·Έλ‘ μΆκ° μ²λ¦¬λ₯Ό λ°©μ§νλ κ²λ μ΄μνκ² λ³΄μ
λλ€(νμ¬ κ΅¬νλ κ²μ²λΌ).
process.exitCode μ€μ μ μ€ν μΆμ μ νμνμ§ μμ΅λλ€. process.exit()
λ μ€μ λ‘ process.stdout
λλ process.stderr
λ₯Ό νλ¬μνμ§ μμ΅λλ€(λ λ€ μ°¨λ¨λμ§ μμ). λλ¬Έ κ²½μ°μλ§ λͺ
μμ μΌλ‘ νΈμΆν΄μΌ ν©λλ€. κ·Έλ μ§ μμΌλ©΄ λͺ¨λ νΈλ€μ λ«μΌλ©΄ μ΄λ²€νΈ 루νκ° μ μ λ‘ λ«ν νλ‘μΈμ€κ° μ’
λ£λ©λλ€.
μ΄λ₯Ό λͺ
νν ν΄ μ£Όμ
μ κ°μ¬ν©λλ€. process.exit()
κ° λΉμ°¨λ¨μΈμ§ λͺ°λμ΅λλ€. μ΅λν 빨리 PRμ μ
λ°μ΄νΈνκ² μ΅λλ€.
νμ§λ§ ν κ°μ§: process.exit()
κ° process.stdout
λ₯Ό νλ¬μνμ§ μμ κ²½μ° β λ΄ μ½μμ μΆλ ₯μ΄ μλ μ΄μ λ 무μμ
λκΉ? :μ΄λ₯Ό λλ¬λ΄κ³ μλ€:
μ€νΈλ¦Όμ΄ λ«ν λ μ΄λ―Έ νλ¬μλμμ μ μμ΅λλ€. κ·Έκ²μ λ¨μ§ 보μ¦μ΄ μλλλ€. μ΄κ²μ΄ μ½μμ λλλ‘ (λΆλΆ) μΆλ ₯μ΄ μλ μ΄μ μ λλ€.
μ μ΄λ μ°λ¦¬μ κ²½μ° ν€λ(https://github.com/less/less.js/commit/ec04a03f1cba3a092d5cd7f7c5d8e28bb43c1932 ν¬ν¨)μμ μ€νλλ©΄ μ΄κ²μ΄ ν΄κ²°λλ€λ κ²μ νμΈνμ΅λλ€.
"--source-map"μ μ¬μ©νλ©΄ μ¬μ ν λΉ CSS νμΌμ΄ μμ±λ©λλ€. (κ·Έλ μ§ μμΌλ©΄ μ μκ² ν¨κ³Όμ μ λλ€). node.js v6.0.0(Windows 8 64λΉνΈ)
@ewebdev λ€, νμΈν μ μμ΅λλ€. #2891μ μ¬μ©νλ©΄ λ€μμ΄ λ°μν©λλ€.
lessc --source-map-map-inline styles/main.less
path.js:7
throw new TypeError('Path must be a string. Received ' + inspect(path));
^
TypeError: Path must be a string. Received undefined
at assertPath (path.js:7:11)
at Object.basename (path.js:1355:5)
at /Users/jhnns/dev/jhnns/less.js/bin/lessc:292:61
at Object.<anonymous> (/Users/jhnns/dev/jhnns/less.js/bin/lessc:486:3)
at Module._compile (module.js:541:32)
at Object.Module._extensions..js (module.js:550:10)
at Module.load (module.js:456:32)
at tryModuleLoad (module.js:415:12)
at Function.Module._load (module.js:407:3)
at Function.Module.runMain (module.js:575:10)
μ΄ λ¬Έμ λ₯Ό ν΄κ²°νλ PRμ μ΄μ΄λ λμ§λ§ μΆλ ₯μ΄ process.stdout
μΈ κ²½μ°μ κ°μ΄ μ΄λ€ μν©μμ μ΄λ€ μμ€ λ§΅ μ΅μ
μ΄ μ§μλλμ§ μ λͺ¨λ₯΄κ² μ΅λλ€. μ΄ μ½λλ μ½κ° 볡μ‘νκ³ μλ§λ μ½κ°μ 리ν©ν λ§μ΄ νμν κ²μ
λλ€...
νμΈ, μ΄κ²μ λ Έλ 6κ³Ό μ€λ¨λ©λλ€. μ€λ₯κ° μΆλ ₯λμ§ μμ΅λλ€ :(
μ΄ λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄ μ¬μ ν PRμ κΈ°λ€λ¦¬κ³ μμ΅λκΉ?
AFAICT, μ΄κ²μ ν€λμ κ³ μ λμ΄ μμΌλ―λ‘ npm ν¨ν€μ§ κ²μλ₯Ό κΈ°λ€λ¦½λλ€.
(λ€λ₯Έ μ¬λλ€μ νμΈν΄μΌ ν©λλ€.)
@lmeyerov 컀λ°μμ λ³Ό μ μμ΅λλ€. κ·Έλ¦¬κ³ PR #2882 λλ #2884κ° μ°κ²°λμ΄ μμ§λ§ μ무λ μ΄κ²μ΄ Node 6μ λν μμ μ΄λΌκ³ λ§νμ§ μμ΅λλ€. κ·Έλμ λ΄κ° μκΈ°λ‘λ @jhnns κ° μμΈμ μ°Ύμλλ°λ μμ§ PRμ΄ μ‘΄μ¬νμ§ μλ 건κ°μ? λλ ν΄λΉ PR μ€ νλκ° λ Έλ 6 νΈνμ±μ μμ νμ§λ§ μμ§ μμ λμ§ μμ λ€λ₯Έ λ²κ·Έ(μμ€ λ§΅)λ₯Ό λμ ν©λκΉ? λκ΅°κ° μ΄κ²μ λͺ νν ν μ μμ΅λκΉ?
@matthew-dean lessc
μ무 κ²λ λ°©μΆνμ§ μλ κ²μΌλ‘ νλ©΄νλ λ¬Έμ μ κ²½μ° _μκ°_ νμ¬ ν΄κ²°λμμ΅λλ€. https://github.com/less/less.js/commit/ec04a03f1cba3a092d5cd7f7c5d8e28bb43c1932 . νμ¬ npmμ κ²μλ λ²μ κ³Ό 4μ 22μΌ λ©μΈλΌμΈ μ¬μ΄μ λ¬Έμ κ° ν΄κ²°λμμ΅λλ€.
ec04a03f1cba3a092d5cd7f7c5d8e28bb43c193μ μ¬μ©νλ @matthew-deanμ΄ μ μκ² ν¨κ³Όμ μ λλ€.
@lmeyerov @matthew-dean _source map_ 머리μ https://github.com/less/less.js/commit/ec04a03f1cba3a092d5cd7f7c5d8e28bb43c1932 =/
Btw, μ€λ₯ λ³΄κ³ λ²κ·Έ μμ μ΄ μλλΌλ λ΄ ec04a03 ν¨μΉκ° ν¬ν¨λ λ²μ μ μΆμνλ κ²μ λ°λνλ κ²μ μμ΄μΌ ν©λλ€. κ·ΈλμΌ lesscκ° μ μ΄λ μ΄μ κ³Ό κ°μ΄ Node.js v6μμ μλν©λλ€.
@addaleax Less 2.7.0μ΄ μΆμλμμ΅λλ€(μ§κΈ λ§). μμ§ ν΄κ²°λμ§ μμ λ²κ·Έλ 무μμ λκΉ? μ΄ λ¦΄λ¦¬μ€μ "μλ €μ§ λ²κ·Έ"λ‘ μΆκ°ν΄μΌ ν©λλ€.
κ·Έκ²μ _I_κ° λ§μ£Όν μ μΌν κ²μ λλ€. κ²λ€κ° μ€ν¨ μ μ€μ μ€λ₯ μΆλ ₯μ΄ μλ "λ²κ·Έ"λ μμ΅λλ€. κ·Έλ¬λ λ€λ₯Έ μ¬λμ μν΄ λ§ν μ μμ΅λλ€.
μ΄λ€ μ΄μ μμμΈμ§ μμ€ λ§΅μ λͺ¨λ Less ν μ€νΈλ₯Ό ν΅κ³Όνμ§λ§ μ κ·Έλ μ΄λ ν Node 6.0 νκ²½μ΄ μλ μμ€ λ§΅ μ€λ₯λ λ°μν©λλ€. (λ Έλ 4μμ λ°μ) κ·Έλμ μμ€ λ§΅μ κΉ¨λ¨λ¦° λͺ κ°μ§ λ³κ²½ μ¬νμ΄ μμ΅λλ€.
PR #2834κ° μμ€ λ§΅ λ²κ·Έλ₯Ό λμ νλ€κ³ μκ°ν©λλ€. λ΄ μμ€ν μμ μ»€λ° 470af20μ λλ리면 μμ€ λ§΅ λ¬Έμ κ° ν΄κ²°λμμ΅λλ€. λκ΅°κ°(@ewebdev)κ° λΉ λ₯΄κ² νμΈν μ μμ΅λκΉ? κ·Έλ λ€λ©΄ λλ리기λ₯Ό 컀λ°νκ³ 2.7.1 ν«ν½μ€λ₯Ό λ΄λμ κ²μ λλ€.
//cc @λλ€μ
@matthew-dean μ»€λ° λλ리기 https://github.com/less/less.js/commit/470af20f641c9b5389475733dfe341aa4c180fba λ΄ νκ²½μμ μμ€ λ§΅ λ¬Έμ λ₯Ό ν΄κ²° νμ§ μμ΅λλ€ .
@matthew-dean μ£μ‘ν©λλ€! μ±λ₯ μ΅μ νμΌ λΏμ λλ€. λ¬Έμ κ° λ°μνλ©΄ μΈμ λ μ§ λλ릴 μ μμΌλ©° λμ€μ λ€μ μλν μ μμ΅λλ€.
λ무 νΌλμ€λ¬μ... π
μ‘°μ¬λ₯Ό μν΄ μ΄λ―Έ μκ°μ λ€μκΈ° λλ¬Έμ λͺ νν ν΄λκ² μ΅λλ€.
dirname
λ‘ μ λ¬λ bin/lessc
μ λ²κ·Έλ₯Ό μμ ν©λλ€. μ΄κ²μ μ΄μ κ²μλμμ΅λλ€, λͺ¨λ κ²μ΄ μ’μ΅λλ€ πbin/lessc
μλ μ¬μ ν λ²κ·Έκ° μμ΅λλ€. μ¬κΈ°μ μ μλμ§ μμ κ²½λ‘λ basename
λ‘ μ λ¬λ©λλ€ . lessc --source-map-map-inline some-file.less
λ₯Ό μ€ννλ©΄ lessλ stdoutμ μ무 κ²λ λ΄λ³΄λ΄μ§ μμ΅λλ€. μ΄ λ²κ·Έμ λν PRμ μμ§ μμ΅λλ€. μ΄κ±° κ³ μΉλ €κ³ νλλ° lessc
μ λν ν
μ€νΈλ μκ³ μ΅μ
λ λ무 λ€μν΄μ λ€λ₯Έκ±΄ κΉ¨μ§μ§ μμλ§νΌ μμ μ΄ μμμ΅λλ€... π@jhnns μ€, λ©μ§λ€μ. μ λ κ·Έ μμ€ λ§΅μ λ³΄μ§ λͺ»νμ΅λλ€.
λ€λ₯Έ λ°©λ²μ΄ μλ€λ©΄ path.basename(output)
λ₯Ό path.basename(output || 'undefined');
λ‘ λ³κ²½νμ¬ μ΄μ Node v5 λμμ _볡μ__ν μ μμ΅λλ€. νμ§λ§ output === undefined
μ λν΄ μ 체 λΈλ‘μ 건λλΈ μ μμ΅λλ€.
@jhnns bin/lessc
λ²κ·Έμ μν₯μ 무μμ
λκΉ? ν¬λ¦¬ν°μ»¬ λ²κ·ΈμΈκ°μ? Lessλ μ¬μ ν μλ£λ©λκΉ? κ²°κ³Όλ 무μμ
λκΉ? μ΄ λ²κ·Έμ λν νΉμ λ¬Έμ λ₯Ό λ μμΈν μ 보μ ν¨κ» μ κ³ ν μ μμ΅λκΉ?
μ€λ₯ λ³΄κ³ λ₯Ό μν΄ κ·νμ PRμ λ³ν©νμ΅λλ€.
@matthew-dean μ°Έμ‘° https://github.com/less/less.js/issues/2896
[νΈμ§: μ κ²½ μ°μ§ λ§μΈμ, κ°μ¬ν©λλ€ @matthew-dean]
@ewebdev Less 2.7.1μμ μ¬μ ν λ¬Έμ κ° μλ κ²½μ° μμΈν λ΄μ©μ ν¬ν¨νμ¬ λ³λμ λ¬Έμ λ₯Ό μ μΆν μ μμ΅λκΉ?
@claar κ·Έκ²μ ν΄κ²°λ λ³λμ λ¬Έμ ( @jhnns λͺ©λ‘μ 첫 λ²μ§Έ λ¬Έμ )μ λλ€. λ λ²μ§Έ νλͺ©μ λ³λμ λ²κ·Έμ΄κ³ @ewebdev λ λ³λμ λ²κ·Έμ λλ€. λͺ νμ±μ μν΄ μ΄ λ¬Έμ μ λΆλ¦¬ν΄μΌ ν©λλ€.
@nicks κ·Έκ²μ λ°μν©λλ€. λΉμ μ΄ μ²« λ²μ§Έλ μλ κ²μ λλ€. μμΌλ‘ μλνμ§ μλ μμ€ λ§΅μ κ°μ§ν μ μλλ‘ ν μ€νΈλ₯Ό μΆκ°νλ λ° λμμ μ£Όμλ©΄ κ°μ¬νκ² μ΅λλ€.
Btw, μΌλ°μ μΈ μ°Έκ³ λ‘, Lessμ κ°λ° μ§μμ νμ¬ μ½κ° ν¬λ°ν©λλ€(μ°λ¦¬μ μ£Όμ κΈ°μ¬μ μ€ ν λͺ μ΄ κ°μ‘± μ± μ λλ¬Έμ λ¬Όλ¬λμΌ νμ΅λλ€). λ°λΌμ μ°λ¦¬λ Less κ°λ°μκ° μ‘°μ§ μμ€μμ μ°Έμ¬νλ κ²μ νμ€ν νμν κ²μ λλ€. μ§λ¬Έμ΄ μλ κ²½μ° μ μκ² λ³λλ‘ μ°λ½ν μ μμ΅λλ€.
λ³λμ λ¬Έμ λ₯Ό λ§λ€μμ΅λλ€. μλ λ¬Έμ κ° ν΄κ²°λμμΌλ―λ‘ μ΄ λ¬Έμ λ₯Ό λ«μ μ μμ΅λλ€.
@jhnns μ’μ κ² κ°μ΅λλ€. νλ‘μ°ν΄μ£Όμ μ κ°μ¬ν©λλ€.
λ
Έλ v6.9.2 LTSμμ μ¬μ ν μ€λ¨λμμ΅λλ€.
lessc λ₯Ό μ€νν λ μ무 μΌλ μΌμ΄λμ§ μμ΅λλ€.
κ°μ₯ μ μ©ν λκΈ
κ°μ κ²μλ³΄κ³ . μ¬μν .less νμΌμμ lesscλ₯Ό μ€ννλ©΄ μμΈ λͺ¨λμμλ Node.js v6μμ λΉλ νμΌκ³Ό μ€λ₯κ° μΆλ ₯λμ§ μμ΅λλ€.