これは本当に基本的な質問ですが、クローズされた問題で誰も質問しないので、試してみます-ブラウザにrrule.js
を追加するにはどうすればよいですか? 私はそれをcodepenに追加しようとし
つまり、コンソールにこのエラーが表示され続けます
observableにロードしようとしましたが、それも機能していないようです。 どんな助けでも大歓迎です、ありがとう:)
ブラウザでrruleを使用する方法はたくさんあります。 ブラウザでrruleを試して/テストしたいだけの場合は、 stackblitzのようなものを使用して、npmからモジュールをインポートできます。
codepenのサーバーから相対ファイルパス( "rrule")をインポートしようとしているため、問題が発生しています(codepenを使用したことはありませんが、codepenがrrule
利用できるようにしたことは疑わしいです。なんらかの方法でユーザーです)。 自分で提供する予定がない場合は、CDNからJavaScriptをインポートする必要があります。
ねえ@thefliik 、コメントありがとうございます:)
stackblitzは信じられないほどに見えます。 Codepenは、Webページを構築するための遊び場であり、さまざまなCDNからスクリプトをロードできるという点でstackblitzによく似ています。 codepenのsettings
ダイアログ> Javascript
>を介してスクリプトをロードし、ホストされているスクリプトへのファイルパスを入力しました。
私は現在https://s3.amazonaws.com/appforest_uf/f1559527195623x315562171275647800/rrule.min.js
rruleをホストしています。
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は間違いなく私のコンソールにリソースをロードしています
ロードする必要のある依存関係が他にないことを理解している限り、そうです(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は間違いなく私のコンソールにリソースをロードしています
たぶんあなたはあなたのコンピュータであなたのアマゾンアカウントにログインしています
@zeluspudding私の前のコメントを見ませんでしたか?
import "https://jakubroztocil.github.io/rrule/dist/es5/rrule.min.js"
はcodepenで動作します。
ああ、ごめんなさい-私はあなたのコメントを逃しました。 はい! それは動作します:)
どうもありがとうございました! 私は本当にすべての助けに感謝します。
コードのスニペットを使用して、スタートガイドを更新することをお勧めします(この場合、ES6モジュールをブラウザーに直接インポートします)。 よろしければプルリクエストを送信できます
observableでrruleをプレイすることに興味がある人は、このリンクにアクセスしてください。
最も参考になるコメント
うーん、だから私はES6モジュールを直接ブラウザにインポートする原因はありませんでした(これはUMDモジュールかもしれませんが)が、次のコードはcodepenで動作するようです: