99designs/silex-assets

该包已被废弃且不再维护。未建议替代包。

使用 make 的资产管道

v1.1.0 2014-12-16 05:36 UTC

This package is not auto-updated.

Last update: 2022-02-01 12:31:39 UTC


README

Silex Assets 致力于成为最简约的资产管道,以便在 Silex 项目中使用 sass/requirejs。

而不是依赖于 Gulp/Grunt,它提供了一个 Makefile,或者一组 Makefile 包含文件,以便包含到您的项目中。

它如何工作?

所有资产编译都通过命令行完成。这意味着您的应用程序在开发中也非常轻量。所有资产都围绕一个 dist 目录,该目录位于您的网站树中。使用 Makefile 生成一个 dist/.manifest 文件,该文件包含已生成的文件及其内容的校验和。

随后包含的 twig 扩展允许 twig 模板引用 dist 中的文件,以及来自清单的校验和作为缓存破坏者。

这看起来像 <link rel="stylesheet" src="/web/dist/mystylesheet.css?12312334234" /> 其中数字是 make manifest 目标中构建的 CRC32 校验和。

在开发期间,您可以通过运行 make watch 来重新编译更改的 sass,构建新的清单,如果您有 LiveReload 插件,则浏览器将更新。

安装

composer require 99designs/silex-assets

然后在您的 app.php 文件中添加提供者

<?php

$app->register(new \SilexAssets\Provider\AssetsServiceProvider(array(
    'web_path' => '/dist',
    'output_dir' => __DIR__.'/../web/dist',
    'requirejs_compiled' => $app['assets.require_compiled'],
    'requirejs_output_dir' => __DIR__.'/../web/dist/js',
    'requirejs_web_path' => '/dist/js',
)));

然后添加了使用与 Assetic 扩展非常相似的语法的 twig 扩展

{% stylesheets 'css/swiftly.css' 'css/asimovicons.css' %}
    <link rel="stylesheet" href="{{ asset_url }}" />
{% endstylesheets %}
{% javascripts "js/example.js" %}
    <script src="{{ asset_url }}"></script>
{% endjavascripts %}
{% assets "js/example.js" %}
    <script src="{{ asset_url }}"></script>
{% endassets %}
{% requirejs 'bundles/frontpage' %}