2017-07-18 3 views
0

Je ne suis pas habitué à gérer les ressources autrement que par téléchargement direct, et à copier les fichiers requis dans un dossier désigné en me référant simplement à cela. Cependant, je souhaite garder mes actifs "proches du cadre" et espère donc avoir une idée claire de la manière dont cela se fait à Laravel.Laravel Asset Management, comment utiliser la bibliothèque NPM installée (erreur de référence)

J'utilise Laravel v5.4 et NPM v5.3.0

Je veux utiliser la bibliothèque d'alerte douce et ainsi a fait

npm install sweetalert 

qui a placé les fichiers dans le répertoire node_modules et package.json comme prévu

C'est là que la confusion commence. Je me suis alors fait

npm install --no-bin-links 

(le no-bin-liens drapeau recommandé pour les hôtes Windows par les docs)

et

npm run dev 

pensant que cela compilerait/rapetisser la bibliothèque à mon application. js ou vendor.js (ce qui n'existe pas), ou au moins faire un peu de magie pour me laisser utiliser la bibliothèque.

Les états de sortie:

DONE Compiled successfully in 8551ms 

qui me porte à croire que je l'ai simplement omis d'inclure la bibliothèque d'alerte douce dans ce processus.

PHPStorm ne suggère la bibliothèque comme une option automatique complète, mais l'application ne parvient pas à charger la bibliothèque, en indiquant dans la console JS sur la charge:

jQuery.Deferred exception: swal is not defined ReferenceError: swal is not defined 

J'ai aussi essayé « exiger » -ment la bibliothèque bootstrap.js, indiquant:

window.swal = require('sweetalert'); 

ou simplement

swal = require('sweetalert'); 

Où SWE etalert 'est à nouveau suggéré par l'autocomplétion IDE.

Voici comment je tentais de l'utiliser:

$(document).ready(function() { 
     alert("Hello!"); //works 
     swal({ 
      title: "Hello!", 
      text: "Hellooo", 
      type: "error", 
      confirmButtonText: "OK THEN" 
     }); 
    }); 

qui jette l'erreur mentionnée ci-dessus.

J'ai essayé également d'initialiser en utilisant

window.swal({... 
sweetAlert({... 

qui échouent.

Qu'est-ce qui me manque? Et comment allez-vous utiliser les paquets NPM dans un projet Laravel/quelles sont les meilleures pratiques?

Toute aide est grandement appréciée.

Répondre

0

Vous devez ajouter une référence à votre fichier fournisseur sweetalert dans votre fichier de configuration webpack.js.

mix.scripts('/vendor/..../sweetalert2.min.js', '/public/js/sweetalert.min.js'); 

qui copie à partir de votre dossier fournisseur à votre dossier public lorsque vous exécutez

npm run dev