Rrule: ¿Cómo cargar Rrule?

Creado en 3 jun. 2019  ·  11Comentarios  ·  Fuente: jakubroztocil/rrule

Esta es una pregunta realmente básica, pero no vi a nadie hacerla en los números cerrados, así que intentaré: ¿cómo se agrega rrule.js al navegador? Intenté agregarlo en codepen, pero parece que no puedo hacer que funcione a pesar de probar muchas formas diferentes de requerir / importar módulos.

Es decir, sigo viendo este error en la consola.
image

Incluso intenté cargarlo en observable, pero tampoco parecía que funcionara. Cualquier ayuda es bienvenida, gracias :)

Comentario más útil

Hmm, nunca tuve motivos para importar un módulo ES6 al navegador directamente yo mismo (aunque podría ser un módulo UMD), pero parece que el siguiente código funciona en 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())

Todos 11 comentarios

Hay muchas formas de utilizar rrule en el navegador. Si solo desea jugar / probar rrule en su navegador, puede usar algo como stackblitz que le permitirá importar el módulo desde npm.

Tiene problemas porque está tratando de importar una ruta de archivo relativa ("rrule") desde los servidores de codepen (y, aunque nunca he usado codepen, dudo que codepen haya hecho que rrule esté disponible para son los usuarios de alguna manera). Debería importar el javascript desde un CDN si no lo va a servir usted mismo.

Hola @thefliik , muchas gracias por tu comentario :)

stackblitz se ve increíble. Codepen se parece mucho a stackblitz en el sentido de que es un campo de juego para la creación de páginas web y le permite cargar scripts de diferentes CDN. Cargué mi secuencia de comandos a través del settings diálogo> Javascript > de codepen y luego ingresé la ruta del archivo a mi secuencia de comandos alojada.

image

Actualmente estoy alojando rrule en https://s3.amazonaws.com/appforest_uf/f1559527195623x315562171275647800/rrule.min.js .

Aquí está el lápiz actualizado donde estoy cargando explícitamente rrrule a través de un

importar {RRule, RRuleSet, rrulestr} desde " https://s3.amazonaws.com/appforest_uf/f1559527195623x315562171275647800/rrule.min.js/ "

Ese código, que veo que probó, es la sintaxis correcta de ES6 (aunque parece que a su código le faltó una coma). Parece que S3 está bloqueando el intento de acceso (si miras la consola, está respondiendo con un código de estado prohibido 403).

Aquí hay un proyecto simple que ha importado rrule: https://stackblitz.com/edit/js-bbaffe

Qué extraño, S3 definitivamente está cargando el recurso en mi consola
image

Hasta donde tengo entendido, no hay otras dependencias que deba cargar, ¿verdad (intenté agregar mecanografiado pero eso no pareció importar)?

Si tuviera un entorno npm, copiaría ese encantador proyecto stackblitz que proporcionaste, pero desafortunadamente estoy limitado solo al código del lado del cliente: /

Según Google , la extensión del archivo puede ser importante en los módulos.

Una nota sobre las extensiones de archivo
Es posible que haya notado que estamos usando la extensión de archivo .mjs para los módulos. En la Web, la extensión del archivo realmente no importa, siempre que el archivo se entregue con el tipo MIME de JavaScript text/javascript . El navegador sabe que es un módulo debido al atributo de tipo en el elemento de secuencia de comandos.

Parece que mis archivos no se sirven como text/javascript sino como application/javascript o application/x-javascript . ¿Podría ser el problema? ¿Alguien aquí tiene una versión alojada de rrule que la entrega con el tipo MIME text/javascript ?

Hmm, nunca tuve motivos para importar un módulo ES6 al navegador directamente yo mismo (aunque podría ser un módulo UMD), pero parece que el siguiente código funciona en 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())

Qué extraño, S3 definitivamente está cargando el recurso en mi consola

Tal vez haya iniciado sesión en su cuenta de Amazon en su computadora

Eso es lo que estaba pensando, pero no, puedo acceder a ese archivo desde el modo incógnito y una segunda computadora que no tiene acceso. Como se ve aquí , incluso he intentado cargar el script desde jsdeliver sin suerte.

@zeluspudding , ¿no viste mi comentario anterior?

import "https://jakubroztocil.github.io/rrule/dist/es5/rrule.min.js" me funciona en codepen.

Oh, lo siento, me perdí tu comentario. ¡Y si! Funciona :)

¡Muchas gracias! Realmente aprecio toda la ayuda.

Sugeriría quizás una actualización de la guía de introducción con su fragmento de código (para este caso de importar un módulo ES6 directamente en el navegador). Puedo enviar una solicitud de extracción si lo desea

Para cualquier persona interesada en jugar con rrule in observable visite este enlace .

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

jimmywarting picture jimmywarting  ·  9Comentarios

spurreiter picture spurreiter  ·  3Comentarios

mapidemic picture mapidemic  ·  7Comentarios

elazar picture elazar  ·  18Comentarios

marcoancona picture marcoancona  ·  22Comentarios