我在Laravel 5.4项目中创建了一些功能,我认为这些功能在其他项目中很有用。为了使其可重复使用,我将其实现为Laravel包(按照以下说明进行操作:https://laravel.com/docs/5.4/packages)
包定义了一些视图,视图需要一些javascript,这个javascript需要jQuery。
那么如何进行设置以便在呈现视图时执行脚本?
Laravel文档描述了如何使用服务提供程序的publish()
方法将程序包脚本复制到公共目录(https://laravel.com/docs/5.4/packages#public-assets)。但这是否假设脚本已经编译/缩小?一旦他们进入公共目录,我们应该如何加载它们?我们如何处理脚本依赖(在我的例子中是jQuery)?我们不希望它被包含多次。
Laravel Mix到底在哪里?
我认为理想情况下我们应该能够将javascript源代码放在包中的某个位置:
require('jquery');
// do things with jquery
然后当我运行npm run dev
(或npm run production
)时,包javascript由Mix与app javascript及其所有依赖项一起编译,最终用户的浏览器只需要下载app.js.
有谁能建议如何做到这一点?
或者如果我说这一切都错了,那么有人可以建议如何以'正确'的方式做到这一点吗?