์ด๋ฒ ํธ์ ๋ชฉ์ ์ Ember.js์ Octane ์๋์ ์ ์ถ์ํ๋ ๋ฐ ํ์ํ ์์ ์ ์ํ๋ฅผ ์ถ์ ํ๊ธฐ ์ํ ์ ๋ฐ์ ์ธ ๋ฌธ์ ๋ฅผ ์ ๊ณตํ๋ ๊ฒ์ ๋๋ค.
์ด ๋ชฉ๋ก์ ์๋ ํญ๋ชฉ ์ค ํ๋๋ฅผ ์์ ํ๊ณ ์ถ์ ์ฌ๋์ด ์์ผ๋ฉด ๋จผ์ Discord ์ฑํ ์ #st-octane ์ฑ๋์ ํ์ธํ์ธ์.
๋ค์ ํ ์ผ ๋ชฉ๋ก์ ๊ฐ๋ณ ๋ฌธ์ ๊ฐ ์์ฑ๋ ๋ ํด๋น ๋ฌธ์ ์ ๋ํ ๋งํฌ๋ฅผ ํฌํจํ๋๋ก ์ ๋ฐ์ดํธ๋ฉ๋๋ค. ๋ฌธ์ ์์ฒด์๋ ์ด ๋ชฉ๋ก์ ๊ฐ ํญ๋ชฉ์ ๋ํ ์์ธํ ๋ด์ฉ์ด ํฌํจ๋ฉ๋๋ค.
2018 ๋ก๋๋งต RFC ์ ๋ฐ๋ผ ์ด๋ฏธ ์์ํ ์ผ์ ๋ง๋ฌด๋ฆฌํ๋ ๋ฐ ์ ๋ ํ๊ณ ์ง์คํ๊ณ ์์ต๋๋ค.
๋ก๋๋งต RFC์ ๋ฐ๋ฅด๋ฉด ์ด๋ Octane ์๋์
์ ๋ชฉํ์
๋๋ค. ๊ทธ๋ฌ๋
"Ember Octane์ ์ต์ข
์ผ์ ๊ณผ ๊ธฐ๋ฅ ์ธํธ๋ ํต์ฌ ํ์ ์ํด ๊ฒฐ์ ๋๋ฉฐ ์ด RFC์์ ํ์ ๋์ง ์์ต๋๋ค."
ํต์ฌ ํ ์ฑํผ์ธ: ํฐ ๋ฐ์ผ | ์ํ: ์๋ฃ ๐
ํต์ฌ ํ ์ฑํผ์ธ: ํฐ ๋ฐ์ผ | ์ํ: ์๋ฃ ๐
### ์ถ์ ๋ ์์ฑํต์ฌ ํ ์ฑํผ์ธ: ํฐ ๋ฐ์ผ | ์ํ: ์๋ฃ ๐
### ์์ ์์ ์ํต์ฌ ํ ์ฑํผ์ธ: ํฐ ๋ฐ์ผ | ์ํ: ์๋ฃ ๐
ํต์ฌ ํ ์ฑํผ์ธ: @tomdale | ์ํ: ์งํ ์ค โ
ํต์ฌ ํ ์ฑํผ์ธ: ๋ก๋ฒํธ ์ญ์จ(@rwjblue) | ์ํ: ์๋ฃ ๐
ํต์ฌ ํ ์ฑํผ์ธ: ๋ก๋ฒํธ ์ญ์จ | ์ํ: ์๋ฃ ๐
ํต์ฌ ํ ์ฑํผ์ธ: ๋ก๋ฒํธ ์ญ์จ(@rwjblue) | ์ํ: ์งํ ์ค โ
ํต์ฌ ํ ์ฑํผ์ธ: Jen Weber(@jenweber) | ์ํ: ์งํ ์ค โ
ํต์ฌ ํ ์ฑํผ์ธ: Leah Silber(@wifelette) & Mel Sumner(@melsumner) | ์ํ: ์ง์ฐ๋จ
Octane ๊ธฐ๋ฅ์ ๊ตฌํํ๋ ๋์ ์ถ๊ฐํด์ผ ํ๋ ์๋ก์ด ํญ๋ชฉ์ ๋ฐ๊ฒฌํ์ต๋๋ค.
on
์์ ์ํต์ฌ ํ ์ฑํผ์ธ: ๋ก๋ฒํธ ์ญ์จ(@rwjblue) | ์ํ: ์๋ฃ ๐
fn
๋์ฐ๋ฏธํต์ฌ ํ ์ฑํผ์ธ: ๋ก๋ฒํธ ์ญ์จ(@rwjblue) | ์ํ: ์๋ฃ ๐
ํต์ฌ ํ ์ฑํผ์ธ: ๋ก๋ฒํธ ์ญ์จ(@rwjblue) | ์ํ: ์๋ฃ ๐
@classic
๋ฐ์ฝ๋ ์ดํฐํต์ฌ ํ ์ฑํผ์ธ: ๋ก๋ฒํธ ์ญ์จ(@rwjblue) | ์ํ: ์งํ ์ค
์ด๊ฒ๋ค์ Octane์์ ๋ฒ์๊ฐ ํด์ ๋์์ผ๋ฉฐ ์ด์ ํ์ฅ ๋ชฉํ๋ก ์ถ์ ๋๋ ํญ๋ชฉ์
๋๋ค.
์ธ๋ถ
ember-source@3.??.0
ember-data@3.??.0
application-template-wrapper
~ false
jquery-integration
~ false
template-only-glimmer-components
~ true
.ember-cli
ember generate component
(RFC #481์ ๋ฐ๋ผ) :--no-component-class
--component-structure=flat
EmberObject.extend()
์์ ๋ค์ดํฐ๋ธ ํด๋์ค๋ก ๋ง์ด๊ทธ๋ ์ด์
@MelSumner https://github.com/embroider-build/embroider ์์๋ ๋น๋ ํ์ดํ๋ผ์ธ ๊ฐ์ ์ฌํญ์ ์ถ์ ํด์ผ ํฉ๋๋ค.
@melsumner https://broccoli.build ๋ฐ https://github.com/broccolijs/broccolijs.github.io ์ ๋ธ๋ก์ฝ๋ฆฌ ์ฌ์ดํธ ๋ฐ ๋ฌธ์
์ถ์ ๋ ์์ฑ RFC๋ฅผ ํ์ธํ๊ณ ๋งํฌ๋ฅผ ์ ๋ฐ์ดํธํ ์ ์์ต๋๋ค.
์ฐ๋ฆฌ๋ ๊ธฐ๋ณธ ์ฑ ์ฒญ์ฌ์ง์ ๋ฌด์์ด ํฌํจ๋๋์ง ๊ฐ์ฌํ๋ ๊ฒ์ ๋ํด ์ด์ผ๊ธฐํ์ต๋๋ค. ๊ด๋ จ ๋ฌธ์ ๋ณด๊ธฐ:
FWIW, @tomdale ์ Octane Edition๊ณผ ์๋นํ ์ง๊ตํ๋ ๊ฒ์ฒ๋ผ ๋ณด์ ๋๋ค.
์ฅํ๊ฐ์ ์ ํ ๊ด๋ จ์ด ์์ต๋๋ค
์ต๊ทผ์ ์ด ๋ฌธ์ ๋ฅผ ์ ๊ธฐํ ์ด์ ๋ ์ฌ๋ฌ ํ๋ก๊ทธ๋๋ฐ ๋ชจ๋ธ์ ์ง์ํ๋ ๊ธฐ๋ณธ ์ฒญ์ฌ์ง(์: ๋ฏธ๋์ ๊ธฐ๋ณธ ์ฅํ๊ฐ ์ฒญ์ฌ์ง)์ ์์ํ "ํด๋์" ์ฑ์ด๋ ์์ํ "์ฅํ" ์ฑ์ด ์ ํ ํ์๋ก ํ์ง ์๋ ์ถ๊ฐ ์๋ฃ๊ฐ ํฌํจ๋ ์ ์๋ค๋ ๊ฒ์ ๋๋ค.
์ด๊ฒ์ด ๋ฌธ์ ๊ฐ ์๋์ ํ์ธํ ์ ์๋ค๋ฉด ์ด๊ฒ์ด ์ฅํ๊ฐ์ ๋งค์ฐ ๋ฐ์ ํ ๊ด๋ จ์ด ์๋ค๋ ๋ฐ ๋์ํฉ๋๋ค.
imo, ์ฅํ ์ธ ์ฒญ์ฌ์ง, https://github.com/ember-cli/ember-octane-blueprint ๋ _ideal_ ์์ ํ ์๋กญ๊ณ ๋น๋๋ ์ฑ์ด์ด์ผ ํฉ๋๋ค. ์ด์ ํ๋ก๊ทธ๋๋ฐ ๋ชจ๋ธ์ด ์ฒญ์ฌ์ง์ ํฌํจ๋์ด์๋ ์ ๋๋ค๊ณ ์๊ฐํฉ๋๋ค. :-
@MelSumner - ์ด ์ฒดํฌ๋ฆฌ์คํธ์์ MU ๊ด๋ จ ํญ๋ชฉ์
์ด๋ฏธ MU ๋ ์ด์์ ๋์ Octane ๋ ์ด์์์ผ๋ก ๋ถ๋ ธ๊ณ ... ์๊ฐํ ์๋ก ์ดํด๊ฐ ๊ฐ๋๋ค!
@MelSumner - ์ด ์ฒดํฌ๋ฆฌ์คํธ์์ MU ๊ด๋ จ ํญ๋ชฉ์
@rwjblue ์ฒซ ๋ฒ์งธ ์น์ ์์ MU ํ์คํธ ๋ฌธ์ ์ ์ฐ๊ฒฐํ์ต๋๋ค. "์์ํ ๊ฒ ๋๋ด๊ธฐ" - ์ถ์ ํด์ผ ํ๋ค๊ณ ์๊ฐํ๋ ๊ฒ์ด ๋ ์์ต๋๊น?
ember-cli-create
์ ๋ ์ด ๋ฌธ์ ๋ฅผ ํจ๊ป ๋ฃ์์ต๋๋ค: ember-cli/ember-cli#8343. ์ผ๋ง๋ ๋ง์ ์์ ์ฌ์์ด ์ฅํ๊ฐ(= _publication_ ํ์)์ ์ผ๋ถ๋ก ๊ตฌํ๋ ๊ฒ์ธ์ง์ ๋ฐ๋ผ, ๋ด๊ฐ ๋งํฌํ ๋ฌธ์ ๋ ์ฃผ๋ก ์ถํ ํ์์ ๋ณด์ํ ์ ์๋ _authoring_ ํ์์ ๊ดํ ๊ฒ์
๋๋ค.
๊ฐ์ธ์ ์ผ๋ก ember-cli-create
๋ฅผ ์ฅํ๊ฐ์ ์ผ๋ถ๋ก ๋ณด์ง ์๊ณ ์์ฑ ํ์์ด _๊ฐ๋ฅ_ํ ์ ์์ต๋๋ค(๊ธฐ๋ณธ์ ์ผ๋ก ember-cli-create
์ ๊ธฐ์ด๋ฅผ ์ค์ ํจ).
๊ทธ๊ฒ์ด ์ข์ ์ถ๊ฐ๊ฐ ๋๊ฑฐ๋ ๋ ๋์ ์ฌํ ์ฅํ ๋ฆด๋ฆฌ์ค๋ก ์ฐ๊ธฐํ๊ฑฐ๋ ๋ด๊ฐ ์ด๋ป๊ฒ ๋์ธ ์ ์๋์ง ์๋ ค์ฃผ์ญ์์ค.
octane ์ฒญ์ฌ์ง > ์ ๋์จ์ ember-cli org๋ก ์ด๋ ํ์ธ ๊ฐ๋ฅ :)
์ ๋ฐ์ดํธ, ๊ฐ์ด๋ https://github.com/ember-learn/guides-source/issues/139 ์์ ์ต๊ธ ๋ธ๋ํท ๋ณํ์ ์ถ์ ํ๊ธฐ ์ํ ํ์คํธ ๋ฌธ์ ๊ฐ
jQuery RFC ์ ๊ฑฐ๋ฅผ ํ์ธํ ์ ์์ต๋๋ค! โ
๋ํ https://github.com/emberjs/ember.js/issues/17476์ ์ฐ๊ฒฐํ ์ ์๋ ์ถ์ ๋ฌธ์ ๋ ๋ง๋ค์์ต๋๋ค.
์ฅํ๊ฐ ์ฒญ์ฌ์ง๊ณผ ๊ด๋ จ๋ ๊ธฐ๋ฅ ํ๋๊ทธ ๋ฐ ์ ํ์ ๊ธฐ๋ฅ์ ๋ํ ์ฌ์ฉ์ ์คํ ๋ฆฌ
์ํฌ์ต ๊ฐ์ฌ๋ก์ ์ ๋ ํ์๋ค์ด
ember new
๋ฅผ ์คํํ๊ณember new
์ฃผ์์ ์ฌ๋ฃ๋ฅผ ๋น๋ํ ๋ ์ป์ ์ ์๋ ๊ฒ์ ๊ตฌ์ฒด์ ์ผ๋ก ์ดํดํ๊ธฐ ์ํด ์ฅํ ์ฒญ์ฌ์ง์ ๋ค์ํ ์ ํ์ /๊ธฐ๋ฅ ํ๋๊ทธ์ ๋ํ ๊ธฐ๋ณธ๊ฐ์ ์์์ผ ํฉ๋๋คember new
์๋นํ ๊ธฐ๊ฐ ๋์ ์ ํจํember new
์ ๋๋ค.
์ฐธ๊ณ ๋ก ์ ๋ Ember 2.12๋ฅผ ์ง์ํ๋ @ember/render-modifiers 1.0.0์ ๋ฐฉ๊ธ ๊ฒ์ํ์ต๋๋ค( ember-modifier-manager-polyfill ์ฌ์ฉ ). ์์ง ํด์ผ ํ ์ผ์ด ์ฝ๊ฐ ์์ง๋ง(๋ ๋ง์ ๋ฌธ์๊ฐ ํ์ํจ) ์ข์ ์์์ ๋๋ค...
@MelSumner ์ ๋ Native JS Classes ์ฒญ์ฌ์ง์ ์์ ํ ๊ฒ์ ๋๋ค.
Classic+Octane ์ธ๊ณ์์ https://github.com/ember-cli/ember-new-output ์ ๋ํด ์ด๋ค ์ผ์ด ์ผ์ด๋์ผ ํ๋์ง ์๊ฐํด ๋ณธ ์ฌ๋์ด ์์ต๋๊น?
ํด๋น ๋ฆฌํฌ์งํ ๋ฆฌ์ ์ถ๋ ฅ์ ember new
์ ์ถ๋ ฅ๊ณผ ์ผ์นํ๋ฉฐ, ํ์ฌ ๊ณํ์ ๋ฐ๋ฅด๋ฉด "์ค๋น๊ฐ ์๋ฃ๋๋ฉด" ์ฅํ ์ฒญ์ฌ์ง์ผ๋ก ๋ณ๊ฒฝ๋ฉ๋๋ค.
"๋ก๋๋งต RFC์ ์ค์ ๊ตฌํ" ์น์ ์์ ๋ชจ๋ ํตํฉ์ด ๋๋ฝ๋ ๊ฒ ๊ฐ์ต๋๋ค.
"๋ก๋๋งต RFC์ ์ค์ ๊ตฌํ" ์น์ ์์ ๋ชจ๋ ํตํฉ์ด ๋๋ฝ๋ ๊ฒ ๊ฐ์ต๋๋ค.
ํ ํ๋ฆฟ ๊ฐ์ ธ์ค๊ธฐ๊ฐ ์์ง ๋ฐฐ์ก๋์ง ์์ ์ฃผ์ ๋ถ๋ถ์ด๋ผ๊ณ ์๊ฐํ๋ฏ๋ก ์ด ๋ฌธ์ ์์ ์ถ์ ์ค์ธ ๋ถ๋ถ์ ๋๋ค. ๋์์ด ๋๋์ ,
@MelSumner ์๊ฒ ์ต๋๋ค, ๊ฐ์ฌํฉ๋๋ค!
์๋
ํ์ธ์ ์ฌ๋ฌ๋ถ, "Remove jQuery" RFC์ ๊ตฌํ์ ๋๋ถ๋ถ ์๋ฃ๋์์ต๋๋ค(์ ์ด๋ ์ฒซ ๋ฒ์งธ Ember 3.x ๋จ๊ณ์ ๊ดํ ํ, https://github.com/emberjs/ember.js/issues/17476 ์ฐธ์กฐ) . ๋ฌด์ ์ฌ์ ํ ์ด๋ ค ๊ธฐ๋ณธ์ ์ผ๋ก ์ด๋ค jQuery๋ฅผ๋ก ์ ํํ๋ ค๋ฉด ์ฒญ์ฌ์ง์ (๊ธฐ๋ณธ, ๋น ์ฅํ)๋ฅผ ์ฐจ๋จํ๋ ๊ฒ์์
๋๋ค ๋ด์ฅ๊ณผ ํจ๊ป ์์
์ ํ๋ค ๋จ์ ๋ฐ์ดํฐ์ ๋ฅ๋ ฅ fetch
๋์ $.ajax
(์์ด ember-data
ํจ์น ๋ฏน์ค์ธ์ ์ ์ฉํด์ผ ํ๋ ๊ฒฝ์ฐ) WIP PR: https://github.com/emberjs/data/pull/5386์ ์ฐธ์กฐํ์ธ์.
๊ทธ๋ฅ ์๋ ค๋๋ฆฌ์๋ฉด... ๋ค์ ํต์ฌ ํ ํ์์์ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด์ผ ๊ฒฐ์น์ ์ ํต๊ณผํ ์ ์์๊น์?
๋ชฉ๋ก์ ์ถ๊ฐํ๊ณ ์ถ์ ember-cli์ ๊ด๋ จ๋ ๋ช ๊ฐ์ง ์ฌํญ:
moduleConfig.collections = Object.assign(moduleConfig.collections, {
// ember-simple-auth
authenticators: {
types: ['authenticator'],
defaultType: 'authenticator'
}
});
(์, @sly7-7 ์ ๊ณต :D)
๊ทธ๋ฆฌ๊ณ
moduleConfig.types = Object.assign(moduleConfig.types, {
// ember-intl
'ember-intl<strong i="12">@adapter</strong>': { definitiveCollection: 'main' },
'ember-intl<strong i="13">@translation</strong>': { definitiveCollection: 'main' },
translation: { definitiveCollection: 'main' },
formats: { definitiveCollection: 'main' },
cldr: { definitiveCollection: 'main' },
'util:intl': { definitiveCollection: 'utils' },
'intl:util': { definitiveCollection: 'utils' },
// ember-gestures
'ember-gesture': { definitiveCollection: 'main' },
});
ember-cli์ ๊ด๋ จ๋ ๋ค๋ฅธ ๊ฒ์ ์ฌ๋ฌ ๋๋ฏธ ์ฑ์ ์ง์ํ๋ ๊ฒ์
๋๋ค.
์ง๊ธ๊น์ง ์ฌ๊ธฐ์ ๋ช ๊ฐ์ง ๋์์ธ ์ ์์ด ์์ต๋๋ค.
๋ํ ์ด๊ฒ์ ์ถ์ ํ๋ ๋ฐฉ๋ฒ์ ํ์คํ์ง ์์ง๋ง @miguelcobain ์ ember-paper ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ฅํ ์ค์ ํ๋ก์ธ์ค๋ฅผ ๋งค์ฐ ๊ฐ๋จํ๊ฒ ์กฐ์ ํ๊ณ ์ถ์ต๋๋ค(ํ์ฌ ์ฅํ ์ฑ์์ ember-paper๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ๊ฐ๋จํ์ง ์์)
์คํ์ผ์ด ํธ์คํธ ์ฑ์ ๋ ธ์ถ๋๋ ๊ฒ๊ณผ ๋๋ถ๋ถ ๊ด๋ จ์ด ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ๊ธฐ์กด ์คํ์ผ ์ ๋์จ์ด "๊ทธ๋ฅ ์๋"ํ๋๋ก ํ ์ ์๋ ๊ฐ๋จํ ์์ ์ด ์๋ ๊ฒฝ์ฐ ๋๋ ๋ชจ๋ ์คํ์ผ ์ ๋์จ์ octane / isModuleUnification ์กฐ๊ฑด์ ์ถ๊ฐํ๋๋ก ๋ง๋ค๋ ค๋ ๊ฒฝ์ฐ idk?
@NullVoxPopuli
์๋ ํ์ธ์, "Remove jQuery" RFC์ ๊ตฌํ์ ๋๋ถ๋ถ ์๋ฃ๋์์ต๋๋ค(์ ์ด๋ ์ฒซ ๋ฒ์งธ Ember 3.x ๋จ๊ณ์ ๊ดํ ํ, #17476 ์ฐธ์กฐ). ๋ฌด์ ์ฌ์ ํ ์ด๋ ค ๊ธฐ๋ณธ์ ์ผ๋ก ์ด๋ค jQuery๋ฅผ๋ก ์ ํํ๋ ค๋ฉด ์ฒญ์ฌ์ง์ (๊ธฐ๋ณธ, ๋น ์ฅํ)๋ฅผ ์ฐจ๋จํ๋ ๊ฒ์์ ๋๋ค ๋ด์ฅ๊ณผ ํจ๊ป ์์ ์ ํ๋ค ๋จ์ ๋ฐ์ดํฐ์ ๋ฅ๋ ฅ
fetch
๋์$.ajax
(์์ดember-data
ํจ์น ๋ฏน์ค์ธ์ ์ ์ฉํด์ผ ํ๋ ๊ฒฝ์ฐ) WIP PR: emberjs/data#5386 ์ ์ฐธ์กฐํ์ธ์.๊ทธ๋ฅ ์๋ ค๋๋ฆฌ์๋ฉด... ๋ค์ ํต์ฌ ํ ํ์์์ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด์ผ ๊ฒฐ์น์ ์ ํต๊ณผํ ์ ์์๊น์?
@dgeb / @igorT ์ด ์ฐจ๋จ๊ธฐ๋ฅผ ๋์์ค ์ ์์ต๋๊น?
@MelSumner ์, ED ํ์์์ ์ด ๋ฌธ์ ๋ฅผ ์ ๊ธฐํ์ต๋๋ค. ํ์ https://github.com/emberjs/data/pull/5386
@MelSumner
Update blueprints for each object type to use native JS classes
์ด #17621์ ๋ณํฉ๋์์ต๋๋ค. ์ด๊ธฐ์ ์ฒญ์ฌ์ง์ ์ฅํ๊ฐ ์ฒญ์ฌ์ง์ ์ฌ์ฉํ ๋๋ง ๋ค์ดํฐ๋ธ ํด๋์ค๋ฅผ ์์ฑํฉ๋๋ค.
@tomdale , @MelSumner , @rwjblue
https://github.com/crashco/ember-template-component-import/issues/10
์ฐธ๊ณ ๋ก Component Templates Co-locations RFC๋ ์์ง ์ด ์ถ์ ๋ฌธ์ ๊ฐ ์๋๋๋ค. :)
@ Panman8201 ๋ง์ต๋๋ค- Octane์ ๋ฒ์๋ฅผ ๋ฒ์ด๋ฉ๋๋ค. :)
๋๋ ์ด๊ฒ์ด ember octane 3.15+ ๋ฆด๋ฆฌ์ค๋ก ์ ๋ฐ์ดํธ๋์ด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. :)
Octane์ ์ถ์ํ์ผ๋ฏ๋ก ์ด ๋ฌธ์ ๋ฅผ ์ข ๋ฃํ๊ฒ ์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
@melsumner https://broccoli.build ๋ฐ https://github.com/broccolijs/broccolijs.github.io ์ ๋ธ๋ก์ฝ๋ฆฌ ์ฌ์ดํธ ๋ฐ ๋ฌธ์