Nous voulons utiliser bootstrap 4 (4.0.0-alpha.2) dans notre application générée avec angular-cli 1.0.0-beta.5 (w/ node v6.1.0).
Après avoir obtenu bootstrap et ses dépendances avec npm, notre première approche a consisté à les ajouter en angular-cli-build.js
:
'bootstrap/dist/**/*.min.+(js|css)',
'jquery/dist/jquery.min.+(js|map)',
'tether/dist/**/*.min.+(js|css)',
et les importer dans notre index.html
<script src="vendor/jquery/dist/jquery.min.js"></script>
<script src="vendor/tether/dist/js/tether.min.js"></script>
<link rel="stylesheet" type="text/css" href="vendor/bootstrap/dist/css/bootstrap.min.css">
<script src="vendor/bootstrap/dist/js/bootstrap.min.js"></script>
Cela a bien fonctionné avec ng serve
mais dès que nous avons produit une construction avec -prod
flag toutes ces dépendances ont disparu de dist/vendor
(surprise !).
Comment devons-nous gérer un tel scénario (c'est-à-dire le chargement des scripts de démarrage) dans un projet généré avec angular-cli ?
Nous avons eu les pensées suivantes, mais nous ne savons pas vraiment quelle direction prendre...
-
utiliser un CDN ? mais nous préférons servir ces fichiers pour garantir qu'ils seront disponibles
-
copier les dépendances dans
dist/vendor
après notreng build -prod
? Mais cela semble être quelque chose qu'angular-cli devrait fournir puisqu'il "s'occupe" de la partie construction ? -
ajout de jquery, bootstrap et tether en
src/system-config.ts
et d'une manière ou d'une autre, les mettre dans notre paquet enmain.ts
? Mais cela ne semblait pas correct étant donné que nous n'allons pas les utiliser explicitement dans le code de notre application (contrairement à moment.js ou quelque chose comme lodash, par exemple).
0 votes
Les avez-vous dans votre fichier system-config.ts ? Vous devez les mapper.
1 votes
De nombreuses réponses ci-dessous recommandent l'utilisation de ngx-bootstrap. J'ai constaté que ce n'est pas un remplacement complet des plugins jquery de Bootstrap et parfois vous avez encore besoin d'utiliser ces plugins jquery "natifs", tels que la fonctionnalité d'effondrement dans les tableaux. Dans ce cas, cherchez l'une des réponses ci-dessous qui explique comment importer explicitement le jquery script à partir du fichier .angular-cli.json.
0 votes
stackoverflow.com/questions/43557321/
0 votes
Utilisez simplement ng-bootstrap ng-bootstrap.github.io/#/home