DéveloppeurWeb.Com
    DéveloppeurWeb.Com
    • Agile Zone
    • AI Zone
    • Cloud Zone
    • Database Zone
    • DevOps Zone
    • Integration Zone
    • Web Dev Zone
    DéveloppeurWeb.Com
    Home»Web Dev Zone»Importez automatiquement SASS/SCSS dans chaque composant Vue.js
    Web Dev Zone

    Importez automatiquement SASS/SCSS dans chaque composant Vue.js

    octobre 27, 2021
    Importez automatiquement SASS/SCSS dans chaque composant Vue.js
    Share
    Facebook Twitter Pinterest Reddit WhatsApp Email

    Si vous avez travaillé avec Vue.js et SASS (ou SCSS à partir de maintenant), vous avez peut-être rencontré ce problème très courant : vous avez des variables SCSS dans un fichier que vous souhaitez mettre à la disposition de vos composants Vue.

    La bonne nouvelle est que Vue CLI facilite incroyablement la prise en charge de l’écriture SCSS, et avec les composants à fichier unique de Vue, vous pouvez simplement ajouter lang="scss" à la <style> bloc (docs).

    La mauvaise nouvelle est que pour utiliser vos variables impertinentes (ou mixins et fonctions), vous devez manuellement @import dans le bloc de style de chaque composant. Au fur et à mesure que votre application grandira, vous vous rendrez vite compte à quel point ce processus est douloureux.

    <style lang="scss">
    @import '@/path/to/variables.scss'
    
    /** ... */
    </style>

    Ne serait-il pas agréable de pouvoir fournir ces fichiers SCSS fonctionnels globalement sans avoir à les importer manuellement ? Bonne nouvelle, vous pouvez !

    Vue CLI 4

    • Créez un fichier appelé vue.config.js (si vous n’en avez pas déjà un)
    • Ajoutez les lignes suivantes :
    module.exports = {
      css: {
        loaderOptions: {
          sass: {
            additionalData: `@import "@/assets/_shared.scss";`,
          },
        },
      },
    };

    Notez que si vous mettez à niveau un projet à partir de Vue CLI 3, vous pouvez rencontrer le problème :

    Sass Loader has been initialised using an options object that does not match the API schema.
    

    Dans ce cas, vous pouvez avoir un fichier de configuration obsolète. Voir la section suivante pour Vue CLI 3 concernant le sass-loader versions.

    Vue CLI 3

    • Créez un fichier appelé vue.config.js (si vous n’en avez pas déjà un)
    • Ajoutez les lignes suivantes :
    module.exports = {
      css: {
        loaderOptions: {
          sass: {
            data: `@import "@/assets/_shared.scss";`,
          },
        },
      },
    };

    Mettre à jour: Si vous avez mis à niveau sass-loader, vous pouvez rencontrer un problème :

    Sass Loader has been initialised using an options object that does not match the API schema.
    

    La solution est de remplacer data dans les options ci-dessus avec prependData pour la version 8, et additionalData pour la version 9.

    Vue CLI 2

    • Ouvrez le fichier appelé /build/utils.js
    • Trouvez la ligne contenant scss: generateLoaders('sass')
    • Remplacez-le par ce qui suit :
    scss: generateLoaders("sass").concat({
      loader: "sass-resources-loader",
      options: {
        resources: path.resolve(__dirname, "./src/_shared.scss")
      }
    })

    Choses à garder à l’esprit

    Les deux méthodes ci-dessus supposent que vous stockez votre Sass partagé dans un fichier à /src/_shared.scss. Si votre projet utilise un nom de fichier ou un dossier différent, ajustez en conséquence.

    Ces fichiers seront importés et disponibles pour chaque composant que vous écrivez, ce qui est idéal pour des choses comme les variables, les fonctions ou les mixins, mais vous devez éviter toute règle CSS réelle. L’ajout de règles CSS à vos fichiers Sass partagés importera ces règles dans tous composant et gonfler votre projet. Pour les règles CSS globales, créez un fichier séparé et importez-le plutôt dans votre fichier principal App.vue.

    Merci beaucoup d’avoir lu. Si vous avez aimé cet article, merci de le partager, et si vous voulez savoir quand je publierai d’autres articles, Suis moi sur Twitter. À votre santé!

    Share. Facebook Twitter Pinterest LinkedIn WhatsApp Reddit Email
    Add A Comment

    Leave A Reply Cancel Reply

    Catégories

    • Politique de cookies
    • Politique de confidentialité
    • CONTACT
    • Politique du DMCA
    • CONDITIONS D’UTILISATION
    • Avertissement
    © 2023 DéveloppeurWeb.Com.

    Type above and press Enter to search. Press Esc to cancel.