Bootstrap4 bağımlılığı PopperJs, Angular'da hata veriyor


96

Yeni bir tane yarattım projelendirip .angular-cli.json'un ilgili bölümlerini aşağıdaki gibi
çalıştırıp npm install bootstrap@4.0.0-beta jquery popper.js --save
değiştirdi

  "styles": [
    "../node_modules/bootstrap/dist/css/bootstrap.css"
  ],
  "scripts": [
    "../node_modules/jquery/dist/jquery.js",
    "../node_modules/popper.js/dist/popper.js",
    "../node_modules/bootstrap/dist/js/bootstrap.js"
  ],

ancak aşağıdaki hatayı alıyorum

10:2287 Uncaught SyntaxError: Unexpected token export
    at eval (<anonymous>)
    at webpackJsonp.../../../../script-loader/addScript.js.module.exports (addScript.js:9)
    at Object.../../../../script-loader/index.js!../../../../popper.js/dist/popper.js (popper.js?4b43:1)
    at __webpack_require__ (bootstrap 4403042439558687cdd6:54)
    at Object.2 (scripts.bundle.js:66)
    at __webpack_require__ (bootstrap 4403042439558687cdd6:54)
    at webpackJsonpCallback (bootstrap 4403042439558687cdd6:25)
    at scripts.bundle.js:1

nasıl düzeltileceğine dair bir fikrin var mı?


garip, benim için çalışmasını sağladım. son klibi mi kullanıyorsun? node_modules
LLai'yi

1
Hata başka bir yerde olmalı
brijmcq

@LLai .angular-cli.json@angular/cli: 1.3.0 node: 6.11.2 npm: 5.3.0 içindeki parçaları değiştirdiniz mi, yoksa konsolda hatayı görmezsiniz.
cilerler

evet bende tam senaryolarınız ve stilleriniz var. jquery@3.2.1 popper.js@1.11.1 bootstrap@4.0.0-beta
LLai

Bunun ne kadar yardımcı olacağından emin değilim, ancak bu soruya bu sayfada bakabilirsiniz, üçüncü taraf kitapların nasıl ekleneceğine dair bir soru var
Rahul Singh

Yanıtlar:


226

Https://getbootstrap.com/docs/4.2/getting-started/introduction/#js adresindeki dokümanlara bakarak aşağıdakileri içe aktardıklarını görebilirsiniz:

<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>

Şu adlandırmaya dikkat edin: jquery. slim .min.js, umd /popper.min.js!

Bu nedenle aşağıdakileri kullandım .angular-cli.json:

      "styles": [
        "../node_modules/bootstrap/dist/css/bootstrap.css"
      ],
      "scripts": [
        "../node_modules/jquery/dist/jquery.slim.min.js",
        "../node_modules/popper.js/dist/umd/popper.min.js",
        "../node_modules/bootstrap/dist/js/bootstrap.min.js"
      ],

Bundan sonra şimdi işe yarıyor gibi görünüyor.


Jquery için packages.json 'unuzda ne var? Node_modules jquery klasörümde jquery.slim.min.js yoktu. Aslında onu jquery 3.2.1'de buldum
Jim Culverwell

2
Package.json'um jquery için şu şekilde görünüyor: "" jquery ":" ^ 3.2.1 "" Tam jquery sürümüyle de test ettim, aynı zamanda çalışıyor gibi görünüyor. Yalnızca ** umd ** / popper.min.js gerekli görünüyor.
Martin Bauer

2
Bu yanıtın 76 olumlu oyu var ... geliştirici, aynı soruyu soran bir Github sorununa yakın bir "RTFM" verdi 😂
brandones

4
JQuery-slim kullanmak ya da önemli değil, ancak popper.js'nin umd sürümünü kullanmak sorunu çözdü, teşekkürler!
finstas

2
Popper bağımlılığı /dist/umdyerine kullanmak /disthile yaptı. Teşekkürler.
redent84

50

Ben de aynı sorunu yaşadım. Benim çözüm oldu değil dist-klasör (./node_modules/popper.js/dist/popper.js) ziyade umd-klasör (./node_modules/popper.js/dist/ almak için umd /popper.js). Js dosyasının mini veya normal sürümünü almanız fark etmez.


3

Birçok kişinin Bootstrap 4 bağımlılıkları (jQuery, popper.js vb.) Ancak https://ng-bootstrap.github.io şeklinde çok daha kolay bir çözüm var .

ng-bootstrap , sıfırdan yazılmış yerel Angular yönergeleri sağlar . Olumlu sonucu şudur: * jQuery, popper.js vb. Eklemenize ve bunlarla ilgili endişelenmenize gerek yoktur * direktifler, Angular dünyasında "mantıklı" olan API'ler sağlar

Bootstrap 4.beta'yı Angular ile kullanmaya çalışan herkes için - ng-bootstrap, Bootstrap 4.beta CSS ile tamamen uyumlu olan ilk beta sürümünü yayınladı.


Angular kullanıyorsanız çok daha kolay, ancak AngularJS kullanıyorsanız değil ...
El Mac

1
Peki, soru Angular ve angular-cli ile ilgiliydi, bu yüzden AngularJS'nin neden buraya getirildiğinden emin değilim ...
pkozlowski.opensource

1

Asp.net Mvc umd'de çalışıyorsanız, aynı şeyi yapın.

Https://stackoverflow.com/a/50839939/8497522'de olduğu gibi sadece BundleConfig.cs'ye ekleyin:

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

dışında:

bundles.Add(new ScriptBundle("~/bundles/popper").Include("~/Scripts/popper.js"));

0

Modal çalıştırmak için lütfen tsconfig.ts içindeki hedefi "es2015" yerine "es5" olarak değiştirin.

"styles": [ "src/styles.css", 
            "node_modules/bootstrap/dist/css/bootstrap.min.css" ], 
"scripts": ["node_modules/jquery/dist/jquery.min.js", 
            "node_modules/popper.js/dist/umd/popper.min.js", 
            "node_modules/bootstrap/dist/js/bootstrap.min.js"] 
}
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.