2017-07-18 28 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