brieucthomas/elixir-twig-extension

Laravel Elixir twig 扩展

v1.0.0 2016-12-06 11:38 UTC

This package is not auto-updated.

Last update: 2024-09-20 20:41:42 UTC


README

Build Status

Laravel Elixir 的 version 任务会将唯一的哈希值附加到文件名上,允许进行缓存清除。

elixir(function(mix) {
    mix.version("css/all.css");
});

例如,生成的文件名可能看起来像这样: all-16d570a7.css

在 Laravel 中,您可以使用视图中的 elixir() 函数来加载相应哈希的资产

<link rel="stylesheet" href="{{ elixir("css/all.css") }}">

这个 twig 扩展是 elixir() 函数的改编。

要求

您需要 PHP >= 5.5.9 来使用此库,但推荐使用最新的稳定版 PHP。

安装

使用 Composer 安装

composer require brieucthomas/elixir-twig-extension

这将编辑(或创建)您的 composer.json 文件并自动选择最新版本。

文档

注册扩展

use BrieucThomas\Twig\Extension\ElixirExtension;

$elixir = new ElixirExtension(
    $publicDir,     // the absolute public directory 
    $buildDir,      // the elixir build directory (default value is 'build')
    $manifestName   // the manifest filename (default value is 'rev-manifest.json')
);
$twig->addExtension($elixir);

将扩展注册为 Symfony 服务

# app/config/services.yml
services:
    app.twig_elixir_extension:
        class: BrieucThomas\Twig\Extension\ElixirExtension
        arguments: ["%kernel.root_dir%/../web/"]
        public: false
        tags:
            - { name: twig.extension }

创建 gulpfile

以下是一个示例 gulpfile.js,用于编译和版本化 app/Resources/js/app.js 脚本

// gulpfile.js
const elixir = require('laravel-elixir');

elixir.config.assetsPath = 'app/Resources';
elixir.config.publicPath = 'web';
elixir.config.appPath = 'src';
elixir.config.viewPath = 'app/Resources/views';

elixir(function(mix) {
    // compile scripts to web/js/all.js (default output)
    mix.scripts(['app.js']);

    // version compiled scripts        
    mix.version(['js/all.js']);
});

使用扩展

<link rel="stylesheet" href="{{ elixir('css/all.css') }}">
<script src="{{ elixir('js/all.js') }}"></script>

您可以用 asset twig 扩展包围,使您的应用程序更便携

<link rel="stylesheet" href="{{ asset(elixir('css/all.css')) }}">
<script src="{{ asset(elixir('js/all.js')) }}"></script>