Я изучаю Yii2 и пытаюсь использовать глоток с ним так, как описано here. Я создал глоток конфиг с следующим содержанием:Yii2 активы и глоток
var gulp = require('gulp');
var uglify = require('gulp-uglify');
var cssMin = require('gulp-css');
var rename = require('gulp-rename');
var minimist = require('minimist');
var options = minimist(process.argv.slice(2), {string: ['src', 'dist']});
var destDir = options.dist.substring(0, options.dist.lastIndexOf("/"));
var destFile = options.dist.replace(/^.*[\\\/]/, '');
// Use `compress-js` task for JavaScript files
gulp.task('compress-js', function () {
return gulp.src(options.src)
.pipe(uglify())
.pipe(rename(destFile))
.pipe(gulp.dest(destDir))
});
// Use `compress-css` task for CSS files
gulp.task('compress-css', function () {
return gulp.src(options.src)
.pipe(cssMin())
.pipe(rename(destFile))
.pipe(gulp.dest(destDir))
});
Я использую этот файл для моей пачки:
<?php
namespace app\assets;
use yii\web\AssetBundle;
class AppAsset extends AssetBundle
{
public $basePath = '@webroot';
public $baseUrl = '@web';
public $css = [
'css/site.css',
];
public $js = [
];
public $jsOptions = [
'position' => \yii\web\View::POS_HEAD
];
public $depends = [
'yii\web\YiiAsset',
'yii\bootstrap\BootstrapAsset',
];
}
И, в конце концов, я использую этот конфиг для asset
команды
<?php
Yii::setAlias('@webroot', str_replace('\\', '/', __DIR__) . '/web');
Yii::setAlias('@web', '/');
return [
'jsCompressor' => 'gulp compress-js --gulpfile gulpfile.js --src {from} --dist {to}',
'cssCompressor' => 'gulp compress-css --gulpfile gulpfile.js --src {from} --dist {to}',
'bundles' => [
'app\assets\AppAsset'
],
'targets' => [
'all' => [
'class' => 'yii\web\AssetBundle',
'basePath' => '@webroot/assets',
'baseUrl' => '@web/assets',
'js' => 'combined-{hash}.js',
'css' => 'combined-{hash}.css',
'depends' => [
],
],
],
// Asset manager configuration:
'assetManager' => [
'basePath' => '@webroot/assets',
'baseUrl' => '@web/assets',
'linkAssets' => true
],
];
Но , когда я пытаюсь запустить php yii asset assets-config.php config/assets-prod.php
объединенные файлы и файл конфигурации config/assets-prod.php
сгенерировать, но в каталоге web/assets
существует множество символических ссылок (o r прямых копий, если linkAssets === true
) файлов и папок, которые сами связаны с связками. Они генерируют по методу publish()
AssetManager
. Почему Yii не очищает эти папки и файлы после процесса компиляции? Или, может, я что-то не так?
У меня такая же проблема. Создается множество папок (или символических ссылок, если я устанавливаю 'linkAssets => true'), и я не использую его. Вы нашли решение? – Clyff
Я читал много учебников, и я считаю, что современный интерфейс - это своего рода «модули левой панели в терминальном состоянии». Теперь я использую minify без каких-либо современных решений, потому что он делает именно то, что я хочу. Современные решения для малого SPA написаны на macbook в starbucks. Я все еще публикую свои файлы с менеджером активов и чистыми пустыми папками с обратным вызовом afterCopy. Тупой путь, я знаю, но Yii - немой каркас –