dhardtke/assetie

dev-master 2014-03-23 13:49 UTC

This package is not auto-updated.

Last update: 2024-09-28 15:51:06 UTC


README

#Assetie

什么是Assetie?

Assetie是我为Laravel 4开发的一个用于管理资产的Laravel包。它使用Kris Wallsmith的出色的Assetic来最小化和压缩资产文件。

这个包仍在开发中,这意味着它处于早期阶段,需要完成大量工作,直到Assetie可以在生产环境中使用!

为什么还需要另一个Laravel 4的资产管理包?

我尝试过多种产品,但都不是很满意。

我想要的只是一个易于使用、简洁且快速的包。

安装

  1. 通过将Assetie添加到composer.json文件的"require"键来要求Assetie

     "dhardtke/assetie": "dev-master"
    

    运行"composer update"来更新所有依赖并安装Assetie。

  2. 通过将其添加到应用的配置中,将Assetie包含到您的Laravel项目中

    app/config/app.php

    • 'Dhardtke\Assetie\AssetieServiceProvider'添加到'providers'数组中
    • 'Collection' => 'Dhardtke\Assetie\Facades\Collection'添加到aliases数组中

就这样!现在您可以开始管理您的资产了。

配置

在您的Laravel安装目录中,通过命令行运行php artisan config:publish dhardtke/assetie以发布Assetie的配置文件。

然后您可以根据以下方式编辑app/config/packages/dhardtke/assetie/config.php

过滤器

'filters' => array(
	'.min.js' => array(
	),
	'.min.css' => array(
		new \Assetic\Filter\CssRewriteFilter,
		$uglifyCss,
		new \Assetic\Filter\PhpCssEmbedFilter
	),
	'.js' => array(
		$JSqueeze
	),
	'.less'	=> array(
		$lessFilter,
		$uglifyCss
	),
	'.css' => array(
		new \Assetic\Filter\CssRewriteFilter,
		$uglifyCss,
		new \Assetic\Filter\PhpCssEmbedFilter
	),
)

将特定的Assetic过滤器添加到某些扩展名。有关更多详细信息,请参阅适当的Assetic过滤器概述

目录

'directories'    => array(
	'javascripts'	=> 'assets/javascripts',
	'stylesheets'	=> 'assets/stylesheets'
),

这些是Assetie将查找其JavaScript和CSS样式表文件的目录。如果您想更改它们,可以在这里进行。 这些路径相对于应用路径。

构建路径

'build_path'    => 'builds',

如果您想更改Assetie将存储其构建的目录,可以在这里进行更改。默认情况下,它设置为app_public() . /builds,但如果您想,可以在这里更改它。

此路径始终相对于Laravel的公共路径

使用

在您的routes.php旁边创建一个名为collections.php的文件。该文件将由Assetie自动包含并包含您的资产集合。

定义第一个集合

要创建自己的第一个集合,您必须在collections.php内部使用以下代码

Collection::addCollection("base", function($collection) {
    $collection->add([
		"style.css",
        "base.js"
	]);
});

现在您可以通过在模板(通常在<head>中)中调用此函数来开始使用此集合

{{ Collection::stylesheets("base"}}
{{ Collection::javascripts("base"}}

定义一个使用基本集合的集合

如果您现在想要一个新的集合,它继承基本集合,可以这样做

Collection::addCollection("portal", function($collection) {
    $collection->includeCollection("base")
	 ->add("portal.css");
});