php artisan vendor:publish的作用?
php artisan vendor:publish
可以把对应的服务提供者的资源文件,复制到指定的路径下。
度娘是这么解释的 但是还不是很懂这个意思
比如php artisan vendor:publish –provider=”Nwidart\Modules\LaravelModulesServiceProvider”
不是在composer的时候就把资源文件撸下来了吗 再发布干嘛
关于 LearnKu
composer 只是下载了vendor里面的文件, config里面的文件还没有呢
推送的是静态文件。 就是图片 css js 这些需要推送到public目录让浏览器访问
发布到项目里,方便定制。
以你的例子:
查看其 源码:
是将 github.com/nWidart/laravel-modules... 发布到项目中的 config/modules.php 文件中。发布完成后,你就可以修改 config/modules.php 里的配置信息来定制 laravel-modules 包的行为。
需要知道的是,composer 下载的代码存放于 vendor 目录下,vendor 下的代码会在每一次安装应用时,重新下载,故此目录的代码不能修改。
一般的扩展包都会兼容扩展包内的配置和一些静态文件(view,js、css 等),但是为了可以让开发者自定义配置或者是静态文件,而不是直接修改 vendor 目录下的扩展包源代码,所以将这些资源复制到项目的工作区内。
注意这里的
mergeConfigFrom,就是如果项目的 config/inquiry.php 存在的话,将会覆盖 vendor/provider/package/config/inquiry.php 的配置。如果扩展包的版本发布,对静态文件或配置做了修改,当更新完扩展包后,需要再次执行发布,并强制覆盖。
当然,发布前建议备份原有文件,比如视图模板文件。