如何使用Laravel 5中NPM安装的库?

时间:2019-04-10 14:59:39

标签: laravel npm

此刻我正在使用Laravel 5.8,我不知道如何在视图中使用NPM脚本。

例如,在控制台中的this simple and nice icon picker (fontawesome-iconpicker)

$ npm i fontawesome-iconpicker
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.7 (node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.7: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})

+ fontawesome-iconpicker@3.2.0
added 1 package and removed 1 package in 16.388s

安装后,我的package.json在依赖项中具有““ fontawesome-iconpicker”:“ ^ 3.2.0”,“,因此我运行

npm run dev

它编译良好。 现在,当我尝试在视图中使用lib时,控制台将显示

Uncaught TypeError: $(...).iconpicker is not a function

我的问题是关于Laravel中的npm安装,不仅这个选择器已经进行了很多研究,但从未发现我做错了什么或这里缺少什么。

=====更新=====

因此,lib现在可以正常工作,但是我不能完全确定其中一个步骤。

运行“ npm i fontawesome-iconpicker”后,至少在Laravel中,“ npm run dev”之前有一个步骤。打开“ resources \ js \ app.js”,然后在“ require('./ bootstrap');”下您可以将需求定义为:

window.iconpicker = require('fontawesome-iconpicker');

此后,您可以运行'npm run dev',并且该lib将被编译在'public / js / app.js'文件中,并且可以通过您定义的名称('iconpicker')来访问。

但是,当我与其他库一起尝试时,'npm run dev'失败了,因为didint找到了'require('NAME_OF_OTHER_LIB_ALREADY_INSTALLED_WITH_NPM');'

因此,问题仍然是^^“

1 个答案:

答案 0 :(得分:1)

我也遇到了同样的问题,我很确定它来自Laravel混合,实际上jquery已加载到您的app.js文件中,但该文件的加载方式如下:

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

因此,如果您在Vue中使用jquery,则尚未加载它,并且会出现这种错误。

如果删除“ defer”,它将起作用,但是最好的方法是在使用jquery之前先等待它加载。 您可以直接在ressource / js / app.js中编写JavaScript来避免此类问题,当您运行npm run watch时它将被编译,并且编译后的文件将位于public / js / app.js