skadmin-utils / webloader
用于将CSS和JS文件加载或部署到网页中的工具
dev-master
2024-05-18 05:21 UTC
Requires
- php: >= 8.2
- ext-json: *
- joseki/webloader-filters: ^1.1
- leafo/scssphp: ^0.8
- matthiasmullie/minify: ^1.3
- scssphp/scssphp: ^1.12
Requires (Dev)
- jakub-onderka/php-parallel-lint: ~0.7
- mockery/mockery: 1.*
- phpstan/phpstan-nette: ^0.11.0
- phpstan/phpstan-shim: ^0.11.0
- phpunit/phpunit: 7.*
This package is auto-updated.
Last update: 2024-09-18 05:57:30 UTC
README
CSS和JS文件加载组件
WebLoader-Reload是由janmarek更新的WebLoader包,用于Nette的最新版本(Nette-3.0)。还包含一些错误修复。
非常感谢Gappa,他更新了这个包以适应Nette-3.0。
作者: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: Joseki\Webloader\CssMinFilter
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
对于Nette的较旧版本,您需要在app/bootstrap.php中注册扩展
$webloaderExtension = new \WebLoader\Nette\Extension(); $webloaderExtension->install($configurator);
在app/presenters/BasePresenter.php中的使用
/** @var \WebLoader\Nette\LoaderFactory @inject */ public $webLoader; /** @return \WebLoader\Nette\CssLoader */ protected function createComponentCss() { return $this->webLoader->createCssLoader('default'); } /** @return \WebLoader\Nette\JavaScriptLoader */ protected function createComponentJs() { return $this->webLoader->createJavaScriptLoader('default'); }
模板
{control css}
{control js}