Rrule: Как загрузить Rrule?

Созданный на 3 июн. 2019  ·  11Комментарии  ·  Источник: jakubroztocil/rrule

Это действительно простой вопрос, но я не видел, чтобы кто-нибудь задавал его в закрытых вопросах, поэтому я попробую - как добавить rrule.js в браузер? Я пробовал добавить его в код, но у меня просто не получается заставить его работать, несмотря на то, что я пробовал много разных способов требовать / импортировать модули.

А именно я постоянно вижу эту ошибку в консоли
image

Я даже попытался загрузить его в наблюдаемом, но тоже не смог заставить это работать. Любая помощь приветствуется, спасибо :)

Самый полезный комментарий

Хм, поэтому у меня никогда не было причин импортировать модуль 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())

Все 11 Комментарий

Есть много способов использовать rrule в браузере. Если вы просто хотите поиграть / протестировать rrule в своем браузере, вы можете использовать что-то вроде stackblitz, которое позволит вам импортировать модуль из npm.

У вас возникают проблемы, потому что вы пытаетесь импортировать относительный путь к файлу ("rrule") с серверов кода (и, хотя я никогда не использовал код, я сомневаюсь, что код сделал rrule доступным для это пользователи в некотором роде). Вам нужно будет импортировать javascript из CDN, если вы не собираетесь обслуживать его самостоятельно.

Привет @thefliik ,

stackblitz выглядит невероятно. Codepen очень похож на stackblitz в том, что это площадка для создания веб-страниц и позволяет загружать скрипты из разных CDN. Я загрузил свой скрипт через codepen settings dialog> Javascript >, а затем ввел путь к файлу к моему размещенному скрипту.

image

В настоящее время я принимаю правила по https://s3.amazonaws.com/appforest_uf/f1559527195623x315562171275647800/rrule.min.js .

Вот обновленное перо, в котором я явно загружаю rrrule через

импортировать {RRule, RRuleSet, rrulestr} из " https://s3.amazonaws.com/appforest_uf/f1559527195623x315562171275647800/rrule.min.js/ "

Этот код, который, как я вижу, вы пробовали, является правильным синтаксисом ES6 (хотя похоже, что в вашем коде может отсутствовать запятая). Похоже, S3 блокирует попытку доступа (если вы посмотрите на консоль, она отвечает запрещенным кодом состояния 403).

Вот простой проект с импортированным правилом: https://stackblitz.com/edit/js-bbaffe

Как ни странно, S3 определенно загружает ресурс в мою консоль
image

Насколько я понимаю, мне не нужно загружать других зависимостей, верно (я пробовал добавить машинописный текст, но это, похоже, не имело значения)?

Если бы у меня была среда npm, я бы скопировал этот прекрасный проект stackblitz, который вы предоставили, но, к сожалению, я ограничен только кодом на стороне клиента: /

Согласно Google , расширение файла может иметь значение для модулей.

Примечание о расширениях файлов
Возможно, вы заметили, что мы используем расширение файла .mjs для модулей. В Интернете расширение файла на самом деле не имеет значения, если файл обслуживается с MIME-типом JavaScript text/javascript . Браузер знает, что это модуль, благодаря атрибуту type в элементе скрипта.

Похоже, мои файлы обслуживаются не как text/javascript а как application/javascript или application/x-javascript . Может ли это быть проблема? У кого-нибудь есть размещенная версия rrule, которая предоставляет ее с типом MIME text/javascript ?

Хм, поэтому у меня никогда не было причин импортировать модуль 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 определенно загружает ресурс в мою консоль

Возможно, вы вошли в свою учетную запись Amazon на своем компьютере

Это то, о чем я думал, но нет, я могу получить доступ к этому файлу в режиме инкогнито и со второго компьютера, у которого нет доступа. Как видно здесь, я даже безуспешно пытался загрузить скрипт из jsdeliver .

@zeluspudding ты не видел мой предыдущий комментарий?

import "https://jakubroztocil.github.io/rrule/dist/es5/rrule.min.js" у меня работает на codepen.

Ой, извините - я пропустил ваш комментарий. И да! Работает :)

Огромное спасибо! Я очень ценю всю помощь.

Я бы посоветовал, возможно, обновить руководство по началу работы с вашим фрагментом кода (в этом случае импортирования модуля ES6 в браузер напрямую). Я могу отправить запрос на перенос, если хотите

Для всех, кто интересуется игрой с rrule в наблюдаемом, посетите эту ссылку .

Была ли эта страница полезной?
0 / 5 - 0 рейтинги