futurerockstars/webloader

用于将 CSS 和 JS 文件加载或部署到网页中的工具

dev-master 2024-05-31 11:02 UTC

This package is not auto-updated.

Last update: 2024-09-20 12:30:23 UTC


README

用于加载 CSS 和 JS 文件的组件

作者:Jan Marek 许可证:MIT

示例

在 Nette 演示者中控制工厂

<?php

protected function createComponentCss()
{
	$files = new WebLoader\FileCollection(WWW_DIR . '/css');
	$files->addFiles(array(
		'style.css',
		WWW_DIR . '/colorbox/colorbox.css',
	));

	$files->addWatchFiles(Finder::findFiles('*.css', '*.less')->in(WWW_DIR . '/css'));

	$compiler = WebLoader\Compiler::createCssCompiler($files, WWW_DIR . '/temp');

	$compiler->addFilter(new WebLoader\Filter\VariablesFilter(array('foo' => 'bar')));
	$compiler->addFilter(function ($code) {
		return cssmin::minify($code, "remove-last-semicolon");
	});

	$control = new WebLoader\Nette\CssLoader($compiler, '/webtemp');
	$control->setMedia('screen');

	return $control;
}

模板

{control css}

使用 Nette 框架扩展的示例

配置在 app/config/config.neon

extensions:
	webloader: WebLoader\Nette\Extension

services:
	wlCssFilter: WebLoader\Filter\CssUrlsFilter(%wwwDir%)
	lessFilter: WebLoader\Filter\LessFilter
	jwlCssMinFilter: WebLoader\Filter\CssMinFilter
	jsMinFilter: WebLoader\Filter\JsMinFilter

webloader:
	css:
		default:
			files:
				- style.css
				- {files: ["*.css", "*.less"], from: %appDir%/presenters} # Nette\Utils\Finder support
			filters:
				- @jwlCssMinFilter
			fileFilters:
				- @lessFilter
				- @wlCssFilter
			watchFiles:		# only watch modify file
				- {files: ["*.css", "*.less"], from: css}
				- {files: ["*.css", "*.less"], in: css}

	js:
		default:
			remoteFiles:
				- https://ajax.googleapis.ac.cn/ajax/libs/jquery/1.7/jquery.min.js
				- https://ajax.googleapis.ac.cn/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js
			files:
				- %appDir%/../libs/nette/nette/client-side/netteForms.js
				- web.js

模板

{control css}
{control js}