wczytuję jQuery z CDN i ten błąd występuje, gdy próbuję zaimportować FullCalendar do moich skryptów:Browserify FullCalendar z jQuery zewnętrznego
Uncaught Error: Cannot find module 'jquery'
Oto mój skrypt:
'use strict'
import $ from 'jquery'
import 'fullcalendar'
$('#calendar').fullCalendar()
I m wykonywania tego polecenia, aby przekształcić mój skrypt:
browserify index.js -t babelify -x jquery > index.min.js
Moje HTML wygląda następująco:
<!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>
Próbowałem również browserify-shim z depends: ['jquery', 'moment']
ale to nie robi żadnej różnicy.
Podejrzewam, że to dlatego, że plik FullCalendar JS ma owijkę UMD, który robi własny require('jquery')
i require('moment')
ale myślałem, że flaga zewnętrzna byłaby wystarczająco inteligentny, aby wykryć.
W jaki sposób mogę obejść ten problem?
Aktualizacja: To był minimalny przykład tego, co próbuję osiągnąć, jednak mój rzeczywisty kod wymaga wielu innych zależności niż FullCalendar, a wszystkie zależności od innych są łączone w jeden plik vendor.min.js
, oddzielony od naszego kodu (np. index.js
).
Czy próbowałeś użyć [expose global] (https://github.com/thlorenz/browserify-shim#a-expose-global-variables-via-global) części browserify-shim? – zero298
@ zero298 Biblioteka po prostu przywiązuje się do '$' bez ujawniania czegokolwiek, w co wierzę. Dostałem inne wtyczki jQuery do pomyślnej pracy z zewnętrzną jQuery (z lub bez podkładki), ale nie z jakiegoś powodu. –
co się stanie, jeśli zmienisz skrypt na 'import $' zamiast 'import $ from 'jquery''? – Anthony