/ /外部jQueryを使用したFullCalendarのBrowserify-javascript、jquery、fullcalendar、external、browserify

外部jQueryを使ってFullCalendarをブラウザー化する - javascript、jquery、fullcalendar、external、browserify

CDNからjQueryをロードしていますが、インポートしようとするとこのエラーが発生します FullCalendar 私のスクリプトに:

不明なエラー:モジュール「jquery」が見つかりません

ここに私のスクリプトです:

"use strict"

import $ from "jquery"
import "fullcalendar"

$("#calendar").fullCalendar()

スクリプトを変換するためにこのコマンドを実行しています:

browserify index.js -t babelify -x jquery > index.min.js

私のHTMLはこのように見えます:

<!DOCTYPE html>
<div id=calendar></div>
<script src=https://code.jquery.com/jquery-2.2.0.min.js></script>
<script src=index.min.js></script>

私も試した browserify-shim 〜と depends: ["jquery", "moment"] しかし、違いはありません。

FullCalendar JSファイルには独自のUMDラッパーがあるためだと思われます require("jquery") そして require("moment") しかし、外部フラグはこれを検出するのに十分スマートだと思いました。

この問題を回避する方法はありますか?

更新:これは私が達成しようとしているものの最小限の例でしたが、実際のコードにはFullCalendarよりも多くの依存関係が含まれており、すべてのサードパーティの依存関係は、 vendor.min.js コードから分離されたファイル( index.js)。

回答:

回答№1は6

私はそれを変更することで動作させることができました require("jquery") フルカレンダー工場で $.

また、使用する必要はありません import $ from "jquery" index.jsファイル内。 fullcalendar npmではすでに依存関係になっています。

実行後

browserify index.js -t babelify -x jquery > index.min.js

fullcalendarファクトリー関数でindex.min.jsファイルを編集します:

else if(typeof exports === "object") {
module.exports = factory(require("jquery"), require("moment"));
}

に:

else if(typeof exports === "object") {
module.exports = factory($, require("moment"));
}

または、node_modules / fullcalendar / dist / fullcalendar.jsファイルでこの編集を直接行うこともできます。

私はこれが助けて欲しい!