Rrule: Rruleをロードする方法は?

作成日 2019年06月03日  ·  11コメント  ·  ソース: jakubroztocil/rrule

これは本当に基本的な質問ですが、クローズされた問題で誰も質問しないので、試してみます-ブラウザにrrule.jsを追加するにはどうすればよいですか? 私はそれをcodepenに追加しようとし

つまり、コンソールにこのエラーが表示され続けます
image

observableにロードしようとしましたが、それも機能していないようです。 どんな助けでも大歓迎です、ありがとう:)

最も参考になるコメント

うーん、だから私は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からモジュールをインポートできます。

codepenのサーバーから相対ファイルパス( "rrule")をインポートしようとしているため、問題が発生しています(codepenを使用したことはありませんが、codepenがrrule利用できるようにしたことは疑わしいです。なんらかの方法でユーザーです)。 自分で提供する予定がない場合は、CDNからJavaScriptをインポートする必要があります。

ねえ@thefliik 、コメントありがとうございます:)

stackblitzは信じられないほどに見えます。 Codepenは、Webページを構築するための遊び場であり、さまざまなCDNからスクリプトをロードできるという点でstackblitzによく似ています。 codepenのsettingsダイアログ> Javascript >を介してスクリプトをロードし、ホストされているスクリプトへのファイルパスを入力しました。

image

私は現在https://s3.amazonaws.com/appforest_uf/f1559527195623x315562171275647800/rrule.min.js rruleをホストしています。

これが更新されたペンで、明示的にrrrule

import {RRule、RRuleSet、rrulestr} from " https://s3.amazonaws.com/appforest_uf/f1559527195623x315562171275647800/rrule.min.js/ "

あなたが試したそのコードは、正しいES6構文です(コードにコンマがないように見えますが)。 S3がアクセスの試行をブロックしているようです(コンソールを見ると、403禁止ステータスコードで応答しています)。

これがrruleをインポートした単純なプロジェクトです: https ://stackblitz.com/edit/js-bbaffe

奇妙なことに、S3は間違いなく私のコンソールにリソースをロードしています
image

ロードする必要のある依存関係が他にないことを理解している限り、そうです(typescriptを追加しようとしましたが、それは問題ではなかったようです)?

私がnpm環境だったら、あなたが提供した素敵なstackblitzプロジェクトをコピーしますが、残念ながら私はクライアント側のコードのみに制限されています:/

Googleによると、ファイル拡張子はモジュールで重要になる可能性があります。

ファイル拡張子に関する注意
モジュールに.mjsファイル拡張子を使用していることに気付いたかもしれません。 Webでは、ファイルが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は間違いなく私のコンソールにリソースをロードしています

たぶんあなたはあなたのコンピュータであなたのアマゾンアカウントにログインしています

それは私が考えていたようなものですが、いいえ、シークレットモードとアクセス権のない2台目のコンピューターからそのファイルにアクセスできます。 ここjsdeliverからスクリプトをロードしようとしました。

@zeluspudding私の前のコメントを見ませんでしたか?

import "https://jakubroztocil.github.io/rrule/dist/es5/rrule.min.js"はcodepenで動作します。

ああ、ごめんなさい-私はあなたのコメントを逃しました。 はい! それは動作します:)

どうもありがとうございました! 私は本当にすべての助けに感謝します。

コードのスニペットを使用して、スタートガイドを更新することをお勧めします(この場合、ES6モジュールをブラウザーに直接インポートします)。 よろしければプルリクエストを送信できます

observableでrruleをプレイすることに興味がある人は、このリンクにアクセスしてください

このページは役に立ちましたか?
0 / 5 - 0 評価