μ΄κ²μ μ λ§ κΈ°λ³Έμ μΈ μ§λ¬Έμ΄μ§λ§ λΉκ³΅κ° λ¬Έμ μμ 묻λ μ¬λμ λ³Έ μ μ΄ μμΌλ―λ‘ μλνλ €κ³ ν©λλ€. λΈλΌμ°μ μ rrule.js
λ₯Ό μ΄λ»κ² μΆκ°ν©λκΉ? codepenμ μΆκ°νλ €κ³ μλνμ§λ§ λͺ¨λμ μꡬνκ±°λ κ°μ Έμ€λ μ¬λ¬ κ°μ§ λ°©λ²μ μλνμ§λ§ μλνμ§ μλ κ² κ°μ΅λλ€.
μ¦, μ½μμμ μ΄ μ€λ₯κ° κ³μ νμλ©λλ€.
λλ κ·Έκ²μ κ΄μ°° κ°λ₯νκ² λ‘λνλ €κ³ μλνμ§λ§ μλνμ§ μλ κ² κ°μ΅λλ€. μ΄λ€ λμμ΄λ νμν©λλ€. κ°μ¬ν©λλ€ :)
λΈλΌμ°μ μμ rruleμ μ¬μ©νλ λ°©λ²μλ μ¬λ¬ κ°μ§κ° μμ΅λλ€. λΈλΌμ°μ μμ rruleμ ν μ€νΈνκ±°λ λκ³ μΆλ€λ©΄ npmμμ λͺ¨λμ κ°μ Έμ¬ μ μλ stackblitz μ κ°μ κ²μ μ¬μ©ν μ μμ΅λλ€.
codepenμ μλ²μμ μλ νμΌ κ²½λ‘("rrule")λ₯Ό κ°μ Έμ€λ €κ³ νκΈ° λλ¬Έμ λ¬Έμ κ° λ°μν©λλ€. (μ λ codepenμ μ¬μ©ν μ μ΄ μμ§λ§ codepenμ΄ rrule
μ¬μ©ν μ μκ² νλμ§ μμ¬μ€λ½μ΅λλ€. κ·Έκ²μ μ΄λ€λ©΄μμ μ¬μ©μμ
λλ€). μλ°μ€ν¬λ¦½νΈλ₯Ό μ§μ μ 곡νμ§ μμΌλ €λ©΄ CDNμμ μλ°μ€ν¬λ¦½νΈλ₯Ό κ°μ ΈμμΌ ν©λλ€.
μλ νμΈμ @fliikλ , λκΈ κ°μ¬ν©λλ€ :)
stackblitzλ λ―Ώμ μ μμ μ λλ‘ λ³΄μ
λλ€. Codepenμ μΉ νμ΄μ§λ₯Ό ꡬμΆνκΈ° μν λμ΄ν°μ΄λ©° λ€λ₯Έ CDNμμ μ€ν¬λ¦½νΈλ₯Ό λ‘λν μ μλ€λ μ μμ stackblitzμ λ§€μ° μ μ¬ν©λλ€. codepenμ settings
λν > Javascript
>λ₯Ό ν΅ν΄ λ΄ μ€ν¬λ¦½νΈλ₯Ό λ‘λν λ€μ νΈμ€ν
λ μ€ν¬λ¦½νΈμ λν νμΌ κ²½λ‘λ₯Ό μ
λ ₯νμ΅λλ€.
μ λ νμ¬ https://s3.amazonaws.com/appforest_uf/f1559527195623x315562171275647800/rrule.min.js
μμ rruleμ νΈμ€ν
νκ³ μμ΅λλ€.
λ€μμ λ€μμ ν΅ν΄ λͺ μμ μΌλ‘ λ‘λνλ μ λ°μ΄νΈλ νμ λλ€.
" https://s3.amazonaws.com/appforest_uf/f1559527195623x315562171275647800/rrule.min.js/ "μμ { RRule, RRuleSet, rrulestr } κ°μ Έμ€κΈ°
λ΄κ° μλν κ·Έ μ½λλ μ¬λ°λ₯Έ ES6 ꡬ문μ λλ€(κ·νμ μ½λμ μΌνκ° λλ½λ κ²μ²λΌ 보μ΄μ§λ§). S3κ° μ‘μΈμ€ μλλ₯Ό μ°¨λ¨νλ κ² κ°μ΅λλ€(μ½μμ 보면 403 κΈμ§ μν μ½λλ‘ μλ΅ν¨).
λ€μμ rruleμ κ°μ Έμ¨ κ°λ¨ν νλ‘μ νΈμ λλ€. https://stackblitz.com/edit/js-bbaffe
λ무 μ΄μνκ²λ S3λ νμ€ν λ΄ μ½μμ 리μμ€λ₯Ό λ‘λνκ³ μμ΅λλ€.
λ΄κ° μ΄ν΄νλ ν λ‘λν΄μΌ νλ λ€λ₯Έ μ’ μμ±μ μμ΅λλ€. λ§μ΅λκΉ(typescriptλ₯Ό μΆκ°νλ €κ³ μλνμ§λ§ λ¬Έμ κ° λμ§ μλ κ² κ°μμ΅λλ€)?
λ΄κ° npm νκ²½μ΄λΌλ©΄ λΉμ μ΄ μ 곡ν λ©μ§ stackblitz νλ‘μ νΈλ₯Ό 볡μ¬ν κ²μ΄μ§λ§ λΆννλ λλ ν΄λΌμ΄μΈνΈ μΈ‘ μ½λλ‘λ§ μ νλ©λλ€./
Google μ λ°λ₯΄λ©΄ νμΌ νμ₯μλ λͺ¨λμμ μ€μν μ μμ΅λλ€.
νμΌ νμ₯μμ λν μ°Έκ³ μ¬ν
λͺ¨λμ.mjs
νμΌ νμ₯μλ₯Ό μ¬μ©νκ³ μμμ λμΉμ±μ ¨μ κ²μ λλ€. μΉμμ νμΌ νμ₯μλ JavaScript MIME μ νtext/javascript
μ 곡λλ ν μ€μ λ‘ μ€μνμ§ μμ΅λλ€. λΈλΌμ°μ λ μ€ν¬λ¦½νΈ μμμ type μμ± λλ¬Έμ λͺ¨λμμ μκ³ μμ΅λλ€.
λ΄ νμΌμ΄ text/javascript
κ° μλλΌ application/javascript
λλ application/x-javascript
. κ·Έκ² λ¬Έμ κ° λ κΉμ? μ¬κΈ° λꡬμκ²λ MIME μ ν text/javascript
μ λ¬νλ rrule νΈμ€ν
λ²μ μ΄ μμ΅λκΉ?
ν , κ·Έλμ ES6 λͺ¨λμ μ§μ λΈλΌμ°μ λ‘ κ°μ Έμ¬ μ΄μ κ° μμμ§λ§(UMD λͺ¨λμΌ μλ μμ) λ€μ μ½λκ° codepenμμ μλνλ κ²μ²λΌ 보μ λλ€.
// This imports everything in the `rrule` namespace
import "https://jakubroztocil.github.io/rrule/dist/es5/rrule.min.js"
console.log(rrule)
// Create a rule:
const rule = new rrule.RRule({
freq: rrule.RRule.WEEKLY,
interval: 5,
byweekday: [rrule.RRule.MO, rrule.RRule.FR],
dtstart: new Date(Date.UTC(2012, 1, 1, 10, 30)),
until: new Date(Date.UTC(2012, 12, 31))
})
// Get all occurrence dates (Date instances):
console.log(rule.all())
λ무 μ΄μνκ²λ S3λ νμ€ν λ΄ μ½μμ 리μμ€λ₯Ό λ‘λνκ³ μμ΅λλ€.
μ»΄ν¨ν°μμ μλ§μ‘΄ κ³μ μ λ‘κ·ΈμΈνμ μ μμ΅λλ€.
κ·Έλ° μκ°μ΄ λ€μμ§λ§ μλμ. μ‘μΈμ€ κΆνμ΄ μλ λ λ²μ§Έ μ»΄ν¨ν°μ μν¬λ¦Ώ λͺ¨λμμ ν΄λΉ νμΌμ μ‘μΈμ€ν μ μμ΅λλ€. μ¬κΈ°μμ λ³Ό μ μλ―μ΄ μ΄ μμ΄ jsdeliver μμ μ€ν¬λ¦½νΈλ₯Ό λ‘λνλ €κ³ μλνμ΅λλ€.
@zeluspudding λ΄ μ΄μ λκΈ λͺ» λ΄€μ΄?
import "https://jakubroztocil.github.io/rrule/dist/es5/rrule.min.js"
λ codepenμμ μλν©λλ€.
μ€, μ£μ‘ν©λλ€ - κ·νμ μ견μ λμ³€μ΅λλ€. κ·Έλ¦¬κ³ μ! κ·Έκ²μ μλν©λλ€ :)
μ λ§ κ°μ¬ν©λλ€! λͺ¨λ λμμ μ λ§ κ°μ¬λ립λλ€.
μ½λ μ€λν«μ μ¬μ©νμ¬ μμνκΈ° κ°μ΄λλ₯Ό μ λ°μ΄νΈνλ κ²μ΄ μ’μ΅λλ€(μ΄ κ²½μ° ES6 λͺ¨λμ λΈλΌμ°μ λ‘ μ§μ κ°μ Έμ€λ κ²½μ°). μνλ€λ©΄ ν 리νμ€νΈλ₯Ό μ μΆν μ μμ΅λλ€
Observableμμ rruleμ μ¬μ©νλ λ° κ΄μ¬μ΄ μλ μ¬λ μ μ΄ λ§ν¬λ₯Ό λ°©λ¬ΈνμΈμ .
κ°μ₯ μ μ©ν λκΈ
ν , κ·Έλμ ES6 λͺ¨λμ μ§μ λΈλΌμ°μ λ‘ κ°μ Έμ¬ μ΄μ κ° μμμ§λ§(UMD λͺ¨λμΌ μλ μμ) λ€μ μ½λκ° codepenμμ μλνλ κ²μ²λΌ 보μ λλ€.