johnpitcher / public-vendor
Silex提供者和Grunt任务,用于处理Composer的vendor目录中的静态资源
v0.0.1
2013-10-16 22:23 UTC
Requires
- php: >=5.3.3
- silex/silex: 1.0.*
Requires (Dev)
- components/jquery: dev-master
- twitter/bootstrap: dev-navbar-button-docs
This package is not auto-updated.
Last update: 2024-09-24 02:22:20 UTC
README
Silex提供者定义了额外的路由,这些路由作为供应商资源解析(这仅在您不想在public目录中包含vendor文件夹时才有用)。例如
project
app - application directory
vendor - composer libraries
author
package
assets
css
js
file.js
img
public - http root folder
css
js
img
如果您想使用public-vendor提供者访问包资源,请使用此URL
<script src="/vendor/author/package/assets/js/file.js"></script>
设置提供者
$app = Silex\Application(); $app->register(new PublicVendor\ServiceProvider());
设置供应商路径
默认供应商路径为__DIR__.'../../../../',因为它应该在Composer的vendor文件夹中。
$app['public-vendor']->setPath('new/path');
设置别名
别名有助于移除供应商名称的一部分,例如:从author/package到package。
此配置
$app['public-vendor']->addAlias('author/package', 'package');
将使此路径可用
<script src="/vendor/package/assets/js/file.js"></script>
设置子路径
子路径定义存储资源的包中的目录。此配置
$app['public-vendor']->addSubPath('author/package', 'assets');
将使此路径可用
<script src="/vendor/author/package/js/file.js"></script>
Grunt任务
如果您使用usemin任务,可以在useminPrepare之前添加publicVendor任务。在同一个目录中设置gruntfile.js与Composer的vendor目录相同非常重要。例如
project
vendor
public
gruntfile.js
设置任务
grunt.loadTasks('vendor/johnpitcher/public-vendor/tasks') grunt.initConfig({ publicVendor: { options:{ aliases: { 'package' : 'author/package' }, subPaths: { 'author/package' : 'assets' }, baseDir: 'vendor' } }, useminPrepare: { ... } );