Это действительно простой вопрос, но я не видел, чтобы кто-нибудь задавал его в закрытых вопросах, поэтому я попробую - как добавить rrule.js
в браузер? Я пробовал добавить его в код, но у меня просто не получается заставить его работать, несмотря на то, что я пробовал много разных способов требовать / импортировать модули.
А именно я постоянно вижу эту ошибку в консоли
Я даже попытался загрузить его в наблюдаемом, но тоже не смог заставить это работать. Любая помощь приветствуется, спасибо :)
Есть много способов использовать rrule в браузере. Если вы просто хотите поиграть / протестировать rrule в своем браузере, вы можете использовать что-то вроде stackblitz, которое позволит вам импортировать модуль из npm.
У вас возникают проблемы, потому что вы пытаетесь импортировать относительный путь к файлу ("rrule") с серверов кода (и, хотя я никогда не использовал код, я сомневаюсь, что код сделал rrule
доступным для это пользователи в некотором роде). Вам нужно будет импортировать javascript из CDN, если вы не собираетесь обслуживать его самостоятельно.
Привет @thefliik ,
stackblitz выглядит невероятно. Codepen очень похож на stackblitz в том, что это площадка для создания веб-страниц и позволяет загружать скрипты из разных CDN. Я загрузил свой скрипт через codepen settings
dialog> Javascript
>, а затем ввел путь к файлу к моему размещенному скрипту.
В настоящее время я принимаю правила по 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 определенно загружает ресурс в мою консоль
Насколько я понимаю, мне не нужно загружать других зависимостей, верно (я пробовал добавить машинописный текст, но это, похоже, не имело значения)?
Если бы у меня была среда npm, я бы скопировал этот прекрасный проект stackblitz, который вы предоставили, но, к сожалению, я ограничен только кодом на стороне клиента: /
Согласно Google , расширение файла может иметь значение для модулей.
Примечание о расширениях файлов
Возможно, вы заметили, что мы используем расширение файла.mjs
для модулей. В Интернете расширение файла на самом деле не имеет значения, если файл обслуживается с MIME-типом JavaScripttext/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 в наблюдаемом, посетите эту ссылку .
Самый полезный комментарий
Хм, поэтому у меня никогда не было причин импортировать модуль ES6 в браузер напрямую (хотя это может быть модуль UMD), но похоже, что следующий код работает с codepen: