johnpitcher/public-vendor

Silex提供者和Grunt任务,用于处理Composer的vendor目录中的静态资源

v0.0.1 2013-10-16 22:23 UTC

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/packagepackage

此配置

$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: { ... }
);