2017-07-18 31 views
0

我對管理資產的方式不是直接下載,而是將所需文件複製到指定文件夾並簡單引用它。但是,我希望保持我的資產「接近框架」,因此希望對Laravel中的工作方式做一些清晰的說明。Laravel資產管理,如何使用已安裝的NPM庫(參考錯誤)

我使用Laravel V5.4和NPM V5.3.0

我想用甜警報庫,所以沒有

npm install sweetalert 

其放置在node_modules目錄的package.json文件如預期的那樣

這是混亂開始的地方。然後我做了

npm install --no-bin-links 

(由文檔推薦Windows主機的無斌鏈接標誌)

npm run dev 

想這會編譯/再縮小庫我的應用程序。 js或vendor.js(不存在),或者至少做一些魔術讓我使用庫。

輸出狀態:

DONE Compiled successfully in 8551ms 

這表明,我認爲我只是沒有包括在這個過程中甜警報庫。

PHPStorm確實表明圖書館作爲一個自動完成選項,但應用程序無法加載庫,負載在JS控制檯中指出:

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

我也曾嘗試「規定」 -ing的庫bootstrap.js,他說:

window.swal = require('sweetalert'); 

或者乾脆

swal = require('sweetalert'); 

在哪裏SWE etalert'再次由IDE自動完成提示。

這裏是我試圖使用它:

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

會拋出上述錯誤。

我也嘗試過使用

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

其失敗的初始化。

我缺少什麼?你如何在Laravel項目中使用NPM包/什麼是最佳實踐?

任何幫助,非常感謝。

回答

0

您需要在webpack.js配置文件中添加對sweetalert供應商文件的引用。

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

將從你的供應商文件夾複製到您的公用文件夾當您運行

npm run dev