Bonjour la communauté,

J'ai un souci avec laravel-mix, la fonction disableNotifications() ne semble pas être reconnue... et du coup si je la laisse mes fichiers js et css ne se compilent pas... a noter que si je la commente, RAS la compilation à bien lieu.

Mon fichier webpack.mix.js :

let mix = require('laravel-mix');

// Disable Notifications
mix.disableNotifications();

/*
 |--------------------------------------------------------------------------
 | Mix Asset Management
 |--------------------------------------------------------------------------
 |
 | Mix provides a clean, fluent API for defining some Webpack build steps
 | for your Laravel application. By default, we are compiling the Sass
 | file for the application as well as bundling up all the JS files.
 |
 */

mix.js('resources/assets/js/app.js', 'public/js')
    .sass('resources/assets/sass/app.scss', 'public/css/app.css')
    .sass('resources/assets/sass/nav.scss', 'public/css/app.css');

J'ai aucune erreur en console.

Avez-vous une idée ?

Merci par avance et bon code à tous.

Edit : j'ai oublié je suis sur Intellij Ultimate si ca peut aider.

7 réponses


StanislasP
Réponse acceptée

Bonjour,

Normalement ca devrait bien fonctionner, je te met ci-dessous le contenu du mien pour inspiration/test

let mix = require('laravel-mix');

/*
 |--------------------------------------------------------------------------
 | Mix Asset Management
 |--------------------------------------------------------------------------
 |
 | Mix provides a clean, fluent API for defining some Webpack build steps
 | for your Laravel application. By default, we are compiling the Sass
 | file for the application as well as bundling up all the JS files.
 |
 */

mix.disableNotifications()
    .copy('resources/assets/images', 'public/images')
    .copy('resources/assets/images/favicon.ico', 'public')
    .js('resources/assets/js/service-worker.js', 'public/')
    .js('resources/assets/js/app.js', 'public/js')
    .sass('resources/assets/sass/app.scss', 'public/css', {
        includePaths: ['node_modules']
    })
    .version();
Seenok
Auteur

Hello Stanislas,

Merci pour ton retour, j'ai désinstaller et réinstaller 'laravel-mix' et visiblement ca fonctionne.
Par contre je comprends pas, mon IDE souligne la fonction comme si elle n'existait pas... m'enfin ca a l'air de marcher donc cool !!!

En regardant la config de ton fichier webpack.mix.js, je me pose une question (je pourrais aller voir par moi même c'est vrai :) ), a quoi cela sert la fonction .version() ?

En tout cas merci et bon code :)

Le version() permet de créer un fichier mix-version.json comme celui la:

{
    "/service-worker.js": "/service-worker.js?id=db85ee834488232d6e09",
    "/css/app.css": "/css/app.css?id=0e5521114d02a5bd6840",
    "/js/app.js": "/js/app.js?id=1debabc5ae8ca858c41e",
    "/favicon.ico": "/favicon.ico?id=082a36cbf05630b235f6"
}

et dans le blade, on appelle alors le fichier voulue via :

<link href="{{ mix('css/app.css') }}" rel="stylesheet" type="text/css">

ce qui genere alors

<link href="/css/app.css?id=0e5521114d02a5bd6840" rel="stylesheet" type="text/css">

ca permet de ne pas avoir a changer le nom des fichier de sortie ni les appel dans les blades en permettant aux utilisateur d'avoir toujours la version la plus recent des fichiers.

Le mieux (je l'est pas fait la) c'est d'entourer le version avec un test sur l'environnement afin de ne le faire que en prod (pas besoin de versionner en dev ou test :)

Bonjour ! je me permet de reveiller se sujet parce que je viens de tomber sur un probleme similaire !
Dans un tutoriel ou on montrait comment ajouter ces propre css a laravel, j'ai suivi les instructions en tapant:
npm install
npm run dev, etc ...
Deux jour apres, mon ordinateur a redemarré suite a des mise a jour qu'il a effectué !
Je me rend compte a ce moment que mes js que j'utilisait auparavant qui fonctionnait tres bien avec la syntaxe:

<script src="{{ asset('js/AddReservation.js') }}"></script>

ne fonctionne plus !!!
J'ai mis alert() dans mon js pour tester, mais rien !!!
Je soupconne le laravel-mix qui est activer suite aux commande ci-dessus !
dans mes recherche je suis tombé sur cette discussion et je voudrais savoir:
Comment, par quel commande desinstaller ou desactiver larave-mix ?
Merci !

Je viens de trouver des commades pour desinstaller laravel-mix:
npm uninstall laravel-mix
npm remove laravel-mix
Mais malgré tous, le probleme persite: mes fichier js ne sont pas interpreté !!!
J'ai supprimer le dossier node_modules, puis supprimez laravel mix package.jsonpuis exécutez-le npm installpour réinstaller les dépendances mais helas !!! aucun resultat !!! mes fichiers js ne fonctionnent toujours pas !!!!
quelqu'un aurait des pistes pour moi ?
Merci !

Seenok
Auteur

Hello Mahomed,

Est-ce que tu as relancé la commande "npm run dev" pour compiler les fichiers ?

Essaie de supprimer le cache de ton navigateur aussi (CTRL + F5).

Si tu fais un simple alert() en javascript, est-ce que le js fonctionne ?

C'est un peu frustrant de ne pas comprendre pourquoi quelque chose qui fonctionnait très bien ne fonctionne plus sans qu'on sache vraiment pourquoi... :(

Bonjour !!!
Finalement j'ai trouvé mon erreur! enfaite il y'avait un probleme de synthaxe dans la partie

.done(function(data){ }

J'avais jamais imaginé qu'au chagrgement de la page, il ya un scannage de synthaxe !
J'ai donc appliqué un systeme de debugging tres minitieux qui m'a reveler la cause de l'erreur !
Merci pour votre reflexion !