此刻我正在使用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');'
因此,问题仍然是^^“
答案 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 >