werkint/webapp-bundle

此包已被弃用且不再维护。未建议替代包。

Werkint Webapp Bundle

安装: 304

依赖者: 3

建议者: 2

安全: 0

星标: 1

关注者: 2

分支: 0

公开问题: 0

类型:symfony-bundle

v0.0.1 2016-01-11 13:41 UTC

This package is not auto-updated.

Last update: 2022-02-01 12:28:17 UTC


README

该Bundle在构建Symfony2应用程序时提供了更好的体验

脚本 = js/scss文件

简而言之,它允许:

  • 基于模板名称自动加载脚本(例如,具有"template.twig"文件的"template.js"和"template.scss"将加载)。
  • 直接将变量传递到脚本中(是的,甚至可以传递到SCSS中)。也支持数组和对象。
  • 处理脚本:它们被压缩合并成单个文件。缓存有助于避免高负载。
  • 智能浏览器缓存:您可以使用标签来区分缓存文件(例如,部分Git哈希)。虽然assetic强制您手动设置此标签,但Webapp会自动处理。
  • SCSS混入的优点:文件在处理之前合并,因此您可以在某个地方定义变量、混入等,然后稍后使用。
  • 脚本存储库:您可以创建包含依赖关系的脚本包。它们在composer.phar更新时自动更新。

配置Bundle

将Bundle添加到composer依赖项,然后添加此配置

werkint_webapp:
    respath:  /res/cached # public path for cached Scripts
    resdir:   %kernel.root_dir%/cache/scripts # directory for cached Scripts
    revpath:  %kernel.root_dir%/cache/revision # tag file (for browser cache)
    scripts:  %kernel.root_dir%/scripts # directory with downloaded packages

配置缓存文件标记

对于自动标记,应该有一个包含当前存储库标记的文件。在git钩子中更改此文件并存储提交哈希(符号链接或在此文件中引入.git/hooks)很方便。

#!/bin/bash
DIR_CACHE=app/cache
HASH=$(git rev-parse HEAD)
REVISION_FILE="$DIR_CACHE/revision"

标记文件的路径存储在"werkint_webapp -> revpath"配置参数中。

连接到脚本存储库

存储库位于http://werkint.com/webapp-scripts/packages。有".packages"文件,其中包含可用的脚本列表,以及".hashes"文件,其中包含包哈希。每个包位于"{url}/packages/{package_name}"。文件列表存储在"{package_url}/.package.ini"中,文件哈希存储在"{package_url}/.hashes"中。

".package.ini"结构简单

[files]
deps  = jquery # dependencies
files = file1.js,file1.scss # Scripts
res   = img1.gif # resources - files,
                 # that are symlinked directly in the public path

如果存在资源目录,则将其压缩并作为存档下载,然后在本地目录中解压缩。例如,我们有"tiny_mce"资源 - 包含文件的目录,将在"/res/cached/tiny_mce/file.."中可用,不应进行处理(tinymce在运行时连接它们)。它在存储库中作为tiny_mce.zip存储,并在下载后解压缩。当Webapp在composer钩子中更新脚本时,它只检查存档哈希,因此可以节省时间。

首先,创建下载脚本的目录,例如"app/scripts"。然后设置此目录的路径并在根composer.json中更新钩子

{
    ...
    "scripts":           {
        "post-install-cmd": [
            ...
            "Werkint\\Bundle\\WebappBundle\\Webapp\\ComposerScriptHandler::updateScripts"
        ],
        "post-update-cmd":  [
            ...
            "Werkint\\Bundle\\WebappBundle\\Webapp\\ComposerScriptHandler::updateScripts"
        ]
    },
    "extra":             {
        ...
        "werkint-webapp-scripts": "app/scripts"
    }
}

现在,每次您调用composer update时,脚本都会更新;

注意,该库不支持IE<9、Firefox<4、Opera<12。