Rendu CSS PROD et DEV incohérent dans Nuxt3
P粉336536706
P粉336536706 2023-08-27 09:48:04
0
1
550
<p>J'ai construit une bibliothèque de composants Vue3 (appelons-la MY-LIBRARY) en utilisant Nuxt3, en utilisant tailwind v2. J'ai un projet parallèle appelé MY-SIDE-PROJECT, construit avec laravel-mix (v6) et Vue3, qui utilise tailwind v2. J'ai un autre projet Vue3 (appelons-le My-PROJECT) construit avec Nuxt3, utilisant également tailwind v2. </p> <p>Dans MY-PROJECT, j'utilise des composants de MY-LIBRARY pour afficher la page. </p> <p>Lorsque je construis mon projet en production à l'aide du script <code>npm run build</code> qui déclenche <code>nuxt build</code>, ma page est servie, mais mon avertissement A apparaît dans le console, par exemple : </p> <pre class="brush:php;toolbar:false;">[AVERTISSEMENT] La syntaxe d'imbrication CSS n'est pas prise en charge dans l'environnement cible configuré ("chrome87", "edge88", "es2020", "firefox78", "safari14 ") [imbrication-css non prise en charge] <stdin>:1:62181 : 1 │ ...-cell}@media (min-width:1024px){&--bordered-max-lg,&--hidden-max... ╵</pré> <p><strong>EDIT : ce problème a été résolu, le CSS pour MY-LIBRARY n'était pas correctement intégré. </strong></p> <p><strong> Pourtant, le CSS de la page de mon projet n'est pas interprété correctement. </strong></p> <p>Je souhaite que les pages de MY-PROJECT servent correctement le CSS de MY-LIBRARY lors de leur création en production. </p> <p>J'ai essayé d'utiliser la configuration de nuxt dans MY-PROJECT, mais la combinaison de Nuxt3/Vue3 et tailwind v2 n'est pas bien documentée sur Internet. Je ne peux pas vraiment passer à tailwind3 pour le moment car le projet a des exigences de compatibilité externe.</p> <p>Voici le fichier nuxt.config.js de mon projet : </p> <pre class="brush:php;toolbar:false;">export par défaut finishNuxtConfig({ ... css : [ '@/actifs/styles/main.scss' ], post-css : { plugins : { vent arrière : {}, préfixe automatique : {}, }, }, construire: { post-css : { options postcss : { plugins : { vent arrière : {}, préfixe automatique : {} } } } } })</pré> <p>Voici le fichier tailwind.config.js de mon projet : </p> <pre class="brush:php;toolbar:false;">module.exports = { important : vrai, préconfigurations: [ require('MA-LIBRAIRE/tailwind.config') ], purger : { contenu: [ "./components/**/*.{js,vue,ts}", "./pages/**/*.vue", "./nuxt.config.{js,ts}", "./app.vue", ] }, thème: { étendre: { ... } }, variantes : { ... } }</pré> <p>J'ai essayé d'ajouter postcss.config.js dans MY-PROJECT mais cela n'a rien changé. </p> <p>Si vous avez des suggestions sur la façon de résoudre mon problème, je vous en serais très reconnaissant ! Merci d'avance. </p> <p><strong>Edit : </strong> Après avoir essayé quelques choses, il semble que le problème principal soit les commandes <code>npm run dev</code> run build ; npm run start</code> (lors du déploiement, mais je reproduis également localement) le rendu est inégal. CSS n'est pas rendu de la même manière.Il s'agit d'un paquet package.json:</p> <pre class="brush:php;toolbar:false;">{ "name": "MON-PROJET", "privé" : vrai, "scripts": { "build": "build nuxt", "dev": "nuxt dev --port=3000", "docker": "npm run dev", "generate": "nuxt générer", "preview": "aperçu nuxt", "postinstall": "préparer nuxt", "start": "nuxt start" }, "moteurs": { "noeud": "16.x", "npm": "8.x" }, "dépendances": { "MA-BIBLIOTHÈQUE": "^1.1.2", "@pinia/nuxt": "^0.4.7", "autoprefixer": "^10.4.14", "axios": "^1.3.4", "luxon": "^3.3.0", "nuxt": "^3.3.1", "nuxt-proxy": "^0.4.1", "pinia": "^2.0.33", "sass": "^1.60.0", "tailwindcss": "^2.2.17", "ovni": "^1.1.1", "vue-i18n": "^9.2.2", "vue3-lottie": "^2.5.0" }, "dépendances dev": { "@nuxtjs/tailwindcss": "4.2.1", "@types/node": "^18.14.2", "@vue/eslint-config-prettier": "^7.1.0", "@vue/eslint-config-typescript": "^11.0.2", "eslint": "^8.34.0", "eslint-plugin-vue": "^9.9.0", "npm-run-all": "^4.1.5", "postcss": "^8.4.21", "plus joli": "^2.8.4", "sass-loader": "^13.2.2" }, "remplacements": { "vue": "dernière" } }</pré> <p><br /></p>
P粉336536706
P粉336536706

répondre à tous(1)
P粉300541798

Je comprends enfin où se situe le problème. Dans ma configuration tailwind, je dois préciser que je souhaite également appliquer tailwind aux composants importés depuis MY-LIBRARY.

Merci à @JSONDerulo pour l'échange qui m'a permis d'identifier la source.

#MY-PROJECT's tailwind.config.js

module.exports = {
    important: true,
    presets: [
        require('MY-LIBRARY/tailwind.config')
    ],
    purge: {
        content: [
            "./components/**/*.{js,vue,ts}",
            "./pages/**/*.vue",
            "./nuxt.config.{js,ts}",
            "./app.vue",
            "./node_modules/MY-LIBRARY/components/**/*.{js,vue,ts}" #<-- the important part
        ]
    },
    theme: {
        extend: {
            ...
        }
    },
}
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal