Rendu CSS PROD et DEV incohérent dans Nuxt3
P粉336536706
2023-08-27 09:48:04
<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>
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.