2017-10-16 7 views
0

Je suis assez nouveau avec Webpack et Vue.js.Webpack: comportement différent avec le projet 'vue init webpack' et 'vue init webpack-simple'

Nous savons que vue-cli apporter avec 2 modèles de projet, webpack et webpack-simple.

Lorsque j'utilise modèle webpack, Si je veux utiliser un autre paquet comme Bootstrap 4 beta, je dois juste faire:

dans main.js:

import 'jquery' 
import 'bootstrap/dist/css/bootstrap.css' 
import 'bootstrap' 

Dans config Webpack:

plugins: [ 
    new webpack.ProvidePlugin({ 
    jQuery: 'jquery', 
    $: 'jquery', 
    jquery: 'jquery', 
    Popper: ['popper.js', 'default'] 
    }) 
] 

Et Bootstrap fonctionne.

Si j'utiliser le modèle webpack-simple, je dois le faire en App.vue pour faire fonctionner Bootstrap:

<style scoped> 
    @import '~bootstrap/dist/css/bootstrap.css'; 
</style> 

Donc, s'il y a des options causent ces différences? Je préfère webpack-simple pour simplifier le projet.

Mais je pense que c'est la raison pour laquelle certains autres paquets de mon application ne fonctionnent pas correctement (par exemple, les icônes dans mavon-editor ne s'affichent pas, mais cela fonctionne bien avec le modèle webpack).

Merci.

Répondre

0

Je crains que les deux ne soient pas les meilleurs pour l'importation de bootstrap. essayez npm install [email protected]

et follow the instructions dans le site.

+0

Merci pour votre réponse. J'ai fait 'npm install bootstrap @ 4.0.0-beta', et ce n'est vraiment pas à propos de ça ...merci bien – raaay0608

+0

vous faites un travail supplémentaire inutile. le paquet npm a résolu les problèmes que vous essayez de résoudre, comme prendre soin de la dépendance jquery. ils l'ont déjà fait pour vous, lorsque vous utilisez le paquet. – LiranC

+0

J'ai installé le paquet par npm, mais pas la version alpha. Ma question concerne les styles d'importation sur certaines pages de mon application, pas d'installer le paquet dans le répertoire du projet. Je pense que je n'ai peut-être pas décrit clairement mon problème et que vous n'avez pas compris mon problème. BTW npm résout la plupart des dépendances, mais bootstrap est une exception, il donne juste un avertissement, mais n'installe pas jQuery et Popper.js. – raaay0608

-1

J'ai comparé le webpack config et package.json des deux et trouver la réponse.

Le point clé est un plugin appelé style-loader, en fait vue-style-loader dans Vue.js

qui peut:

CSS Ajoute au DOM en injectant une étiquette

installer en npm install vue-style-loader --save-dev

et de modifier la configuration webpack à partir de:

{ 
    test: /\.css$/, 
    loader: 'css-loader' 
    }, 

à:

{ 
    test: /\.css$/, 
    use: [ 
     { 
     loader: 'vue-style-loader' 
     }, 
     { 
     loader: 'css-loader' 
     } 
    ] 
    }, 

maintenant automatiquement les, charge les fichiers css pas besoin de @import *.css dans <style> tag plus. Et d'autres paquets tiers ont également commencé à fonctionner correctement.