popper.js in bootstrap 4 fornisce SyntaxError Esportazione di token imprevista


98

Ho provato a installare bootstrap 4 e ho incluso i seguenti collegamenti

<script src="libs/jquery/dist/jquery.min.js"></script>
<script src="libs/tether/dist/js/tether.min.js" ></script>
<script src="libs/popper.js/dist/popper.js"></script>
<script src="libs/bootstrap/dist/js/bootstrap.min.js" ></script>

Ma si verifica il seguente errore:

Sintassi non rilevata Errore: esportazione di token imprevista

inserisci qui la descrizione dell'immagine

Qualche idea su come aggiustarlo?


Non lo so, il file bootstrap lo richiede
Павел Шиляев

no, ho usato bootstrap ma non me l'hanno mai chiesto
Ashish sah

1
ultima versione richiesta
Павел Шиляев

beh, se è così, dirò di usare i collegamenti CDN
Ashish sah

il problema è che non dovrei usare i link CDN quando uploud sul mercato
Павел Шиляев

Risposte:


34

Ho riscontrato lo stesso problema se utilizzo popper.js da una rete CDN come cdnjs.

Se osservi il codice sorgente di Bootstrap 4esempi come ad esempio Navbar puoi vedere che popper.min.jsviene caricato da:

<script src="https://getbootstrap.com/docs/4.1/assets/js/vendor/popper.min.js"></script>

L'ho incluso nel mio progetto e l'errore è sparito. Puoi scaricare il codice sorgente da

https://getbootstrap.com/docs/4.1/assets/js/vendor/popper.min.js

e includi nel tuo progetto come file locale e dovrebbe funzionare.


sì. Hai ragione. Ho copiato e incollato quel codice e l'errore scompare. Il CDN non specifica alcuna versione specifica dipopper.js
Fabrizio Bertoglio

2
Sebbene funzioni, penso che questo non sia il modo corretto, finché il team di BootStrap non aggiorna il proprio codice.
Nadeem Jamali

8
L'URL precedente restituisce un errore non trovato (404). Ho usato getbootstrap.com/docs/4.1/assets/js/vendor/popper.min.js per Bootstrap 4.1.3 e questo ha risolto il problema per me.
Mike Strother

1
Usare la tecnica suggerita in questa risposta è come inseguire un bersaglio in movimento. La risposta giusta è fornita da Marc e Zim.
nagu

purtroppo questo non funziona più. L'errore è scomparso, ma il suggerimento è il suggerimento HTML predefinito
deanwilliammills

243

Ho appena preso anche questo e ho capito perché succede davvero. Nel caso in cui altri se la cavino qui:

Controlla il file readme.md "Usage". La lib è disponibile in tre versioni per tre diversi caricatori di moduli. In breve: se lo carichi con il <script>tag, devi utilizzare la versione UMD . Puoi trovarlo in /dist/umd. Il valore predefinito (in /dist) è ESNext (ECMA-Script) che non può essere caricato utilizzando il scripttag.


5
Grazie. Mi sono sbarazzato dell'errore passando al file umd.
user1500321

4
La modifica del riferimento al file nella cartella umd ha risolto il mio problema
Vimalan Jaya Ganesh,

16
Questa avrebbe dovuto essere una risposta accettata. Eccezionale. Grazie mille per la condivisione.
Ajay Kumar

3
Come sopra, questa è la vera risposta.
Ron

1
Fantastico per l'aiuto veloce, grazie. Mi chiedevo cosa siano queste cartelle / umd e / esm ma Google non dà buoni risultati.
Blackbam

88

Bootstrap 4 richiede la versione UMD di popper.jse assicurati che l'ordine sia il seguente:

<!-- jQuery first, then Popper.js, then Bootstrap JS -->
<script src="~/Scripts/jquery-3.0.0.min.js"></script>
<script src="~/Scripts/umd/popper.min.js"></script>
<script src="~/Scripts/bootstrap.min.js"></script>

La versione UMD è l'unico collegamento CDN che ha rimosso l'errore.
nyusternie

Grazie compagno! Il tuo ordine ha risolto il mio problema. Saluti!
Noobie

17

Puoi anche aggiungere bootstrap.bundle.min.js e rimuovere popper.js nel tuo html.

I file JS in bundle ( bootstrap.bundle.jse minimizzati bootstrap.bundle.min.js) includono [Popper] ( https://popper.js.org/ ), ma non jQuery .


2
bootstrap.bundle.min.jsinclusopopperjs
vuhung3990

migliore risposta poiché non richiede affatto l'uso della libreria Popper.js aggiuntiva
BuddyZ

10

Riga 96 in README

Obiettivi dist

Popper.js viene attualmente fornito con 3 obiettivi in ​​mente: UMD, ESM ed ESNext.

  • UMD - Definizione del modulo universale: AMD, RequireJS e globali;
  • Moduli ESM - ES: per webpack / rollup o browser che supportano le specifiche;
  • ESNext: disponibile in dist/, può essere utilizzato con webpack e babel-preset-env;

Assicurati di utilizzare quello giusto per le tue esigenze. Se vuoi importarlo con un <script>tag, usa UMD.


L'utilizzo del file popper.min.js situato nella directory UMD ha risolto il problema durante l'installazione di popper tramite npm. Grazie!
Kickin_Wing

6

Hai il seguente codice in Bundle Config bundles.Add (new ScriptBundle ("~ / bundles / jquery"). Include ("~ / Scripts / jquery- {version} .js"));

        bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
                    "~/Scripts/jquery.validate*"));

        // Use the development version of Modernizr to develop with and learn from. Then, when you're
        // ready for production, use the build tool at https://modernizr.com to pick only the tests you need.
        bundles.Add(new ScriptBundle("~/bundles/modernizr").Include(
                    "~/Scripts/modernizr-*"));

        bundles.Add(new ScriptBundle("~/bundles/bootstrap").Include(
                    "~/Scripts/umd/popper.min.js",
                  "~/Scripts/bootstrap.js",
                  "~/Scripts/respond.js"));

codice seguente nel layout html

@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/bootstrap")

Questo ha funzionato per me

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.