Commit b2a90d2084d643d809e373cc10f5ca7e593e783b
1 parent
e3b0a3cb
-Asset compression with Gulp (Now commented, uncomment on production frontend/co…
…nfig/main.php and re-compress)
Showing
9 changed files
with
171 additions
and
17 deletions
Show diff stats
common/config/main.php
| ... | ... | @@ -3,14 +3,6 @@ |
| 3 | 3 | 'language' => 'ru', |
| 4 | 4 | 'vendorPath' => dirname(dirname(__DIR__)) . '/vendor', |
| 5 | 5 | 'components' => [ |
| 6 | - 'assetManager' => [ | |
| 7 | - 'bundles' => [ | |
| 8 | - 'yii\web\JqueryAsset' =>[ | |
| 9 | - 'jsOptions' => ['position' => \yii\web\View::POS_HEAD] | |
| 10 | - ] | |
| 11 | - ], | |
| 12 | - ], | |
| 13 | - | |
| 14 | 6 | 'sms' => [ |
| 15 | 7 | 'class' => 'common\components\SmsSender', |
| 16 | 8 | ], | ... | ... |
console/config/bootstrap.php
| 1 | 1 | <?php |
| 2 | -Yii::setAlias('@uploadDir', dirname(dirname(__DIR__)) . '/storage/sync'); | |
| 3 | -Yii::setAlias('@uploadFileProducts', 'products.csv'); | |
| 4 | -Yii::setAlias('@uploadFilePrices', 'file_1.csv'); | |
| 5 | -Yii::setAlias('@uploadFilePricesAway', 'price_product_away.csv'); | |
| 6 | -Yii::setAlias('@uploadFilePricesDuplicate', 'price_duplicate.csv'); | |
| 7 | -Yii::setAlias('@uploadFilePricesNoVariant', 'price_no_variant.csv'); | |
| 8 | - | |
| 9 | -Yii::setAlias('@productsDir', '@frontend/web/images/products'); | |
| 10 | 2 | \ No newline at end of file |
| 3 | + Yii::setAlias('@uploadDir', dirname(dirname(__DIR__)) . '/storage/sync'); | |
| 4 | + Yii::setAlias('@uploadFileProducts', 'products.csv'); | |
| 5 | + Yii::setAlias('@uploadFilePrices', 'file_1.csv'); | |
| 6 | + Yii::setAlias('@uploadFilePricesAway', 'price_product_away.csv'); | |
| 7 | + Yii::setAlias('@uploadFilePricesDuplicate', 'price_duplicate.csv'); | |
| 8 | + Yii::setAlias('@uploadFilePricesNoVariant', 'price_no_variant.csv'); | |
| 9 | + Yii::setAlias('@web', dirname(dirname(__DIR__)) . '/frontend/web'); | |
| 10 | + Yii::setAlias('@webroot', dirname(dirname(__DIR__)) . '/frontend'); | |
| 11 | + Yii::setAlias('@productsDir', '@frontend/web/images/products'); | |
| 11 | 12 | \ No newline at end of file | ... | ... |
frontend/assets/AppAsset.php
| 1 | +<?php | |
| 2 | +/** | |
| 3 | + * This file is generated by the "yii asset" command. | |
| 4 | + * DO NOT MODIFY THIS FILE DIRECTLY. | |
| 5 | + * @version 2016-10-12 09:43:55 | |
| 6 | + */ | |
| 7 | +return [ | |
| 8 | + 'all' => [ | |
| 9 | + 'class' => 'yii\\web\\AssetBundle', | |
| 10 | + 'basePath' => '@webroot/assets', | |
| 11 | + 'baseUrl' => '@web/assets', | |
| 12 | + 'js' => [ | |
| 13 | + 'all-f246a0d9c24e97837891e00a6176e80b.js', | |
| 14 | + ], | |
| 15 | + 'css' => [ | |
| 16 | + 'all-132788b2bdfb3ef7abdc19ec90671f19.css', | |
| 17 | + ], | |
| 18 | + ], | |
| 19 | + 'yii\\web\\JqueryAsset' => [ | |
| 20 | + 'sourcePath' => null, | |
| 21 | + 'js' => [], | |
| 22 | + 'css' => [], | |
| 23 | + 'depends' => [ | |
| 24 | + 'all', | |
| 25 | + ], | |
| 26 | + ], | |
| 27 | + 'yii\\web\\YiiAsset' => [ | |
| 28 | + 'sourcePath' => null, | |
| 29 | + 'js' => [], | |
| 30 | + 'css' => [], | |
| 31 | + 'depends' => [ | |
| 32 | + 'yii\\web\\JqueryAsset', | |
| 33 | + 'all', | |
| 34 | + ], | |
| 35 | + ], | |
| 36 | + 'yii\\bootstrap\\BootstrapAsset' => [ | |
| 37 | + 'sourcePath' => null, | |
| 38 | + 'js' => [], | |
| 39 | + 'css' => [], | |
| 40 | + 'depends' => [ | |
| 41 | + 'all', | |
| 42 | + ], | |
| 43 | + ], | |
| 44 | + 'yii\\bootstrap\\BootstrapPluginAsset' => [ | |
| 45 | + 'sourcePath' => null, | |
| 46 | + 'js' => [], | |
| 47 | + 'css' => [], | |
| 48 | + 'depends' => [ | |
| 49 | + 'yii\\web\\JqueryAsset', | |
| 50 | + 'yii\\bootstrap\\BootstrapAsset', | |
| 51 | + 'all', | |
| 52 | + ], | |
| 53 | + ], | |
| 54 | + 'yii\\bootstrap\\BootstrapThemeAsset' => [ | |
| 55 | + 'sourcePath' => null, | |
| 56 | + 'js' => [], | |
| 57 | + 'css' => [], | |
| 58 | + 'depends' => [ | |
| 59 | + 'yii\\bootstrap\\BootstrapAsset', | |
| 60 | + 'all', | |
| 61 | + ], | |
| 62 | + ], | |
| 63 | + 'frontend\\assets\\AppAsset' => [ | |
| 64 | + 'sourcePath' => null, | |
| 65 | + 'js' => [], | |
| 66 | + 'css' => [], | |
| 67 | + 'depends' => [ | |
| 68 | + 'yii\\web\\YiiAsset', | |
| 69 | + 'yii\\bootstrap\\BootstrapPluginAsset', | |
| 70 | + 'yii\\bootstrap\\BootstrapThemeAsset', | |
| 71 | + 'all', | |
| 72 | + ], | |
| 73 | + ], | |
| 74 | +]; | |
| 0 | 75 | \ No newline at end of file | ... | ... |
frontend/config/main.php
| ... | ... | @@ -12,6 +12,12 @@ return [ |
| 12 | 12 | 'bootstrap' => ['log'], |
| 13 | 13 | 'controllerNamespace' => 'frontend\controllers', |
| 14 | 14 | 'components' => [ |
| 15 | + 'assetManager' => [ | |
| 16 | +// 'bundles' => require(__DIR__ . '/' . 'assets-prod.php'), | |
| 17 | + 'bundles' => [ | |
| 18 | + 'frontend\assets\AppAsset', | |
| 19 | + ], | |
| 20 | + ], | |
| 15 | 21 | 'request' => [ |
| 16 | 22 | 'baseUrl' => '', |
| 17 | 23 | 'cookieValidationKey' => 'ndahjhjjidasuidrqeswuiuirqw89', | ... | ... |
| 1 | +<?php | |
| 2 | +/* | |
| 3 | +Yii command: | |
| 4 | +yii asset tools/gulp/assets-config.php config/assets-prod.php | |
| 5 | +*/ | |
| 6 | + | |
| 7 | +Yii::setAlias('@webroot', dirname(dirname(__DIR__)) . '/frontend/web'); | |
| 8 | +Yii::setAlias('@web', '/'); | |
| 9 | + | |
| 10 | +return [ | |
| 11 | + 'jsCompressor' => 'gulp compress-js --gulpfile tools/gulp/gulpfile.js --src {from} --dist {to}', | |
| 12 | + 'cssCompressor' => 'gulp compress-css --gulpfile tools/gulp/gulpfile.js --src {from} --dist {to}', | |
| 13 | + 'bundles' => [ | |
| 14 | + 'frontend\assets\AppAsset', | |
| 15 | + ], | |
| 16 | + 'targets' => [ | |
| 17 | + 'all' => [ | |
| 18 | + 'class' => 'yii\web\AssetBundle', | |
| 19 | + 'basePath' => '@webroot/assets', | |
| 20 | + 'baseUrl' => '@web/assets', | |
| 21 | + 'js' => 'all-{hash}.js', | |
| 22 | + 'css' => 'all-{hash}.css', | |
| 23 | + 'depends' => [ | |
| 24 | + ], | |
| 25 | + ], | |
| 26 | + ], | |
| 27 | + // Asset manager configuration: | |
| 28 | + 'assetManager' => [ | |
| 29 | + 'basePath' => '@webroot/assets', | |
| 30 | + 'baseUrl' => '@web/assets', | |
| 31 | + ], | |
| 32 | +]; | ... | ... |
| 1 | +var gulp = require('gulp'); | |
| 2 | +var uglify = require('gulp-uglify'); | |
| 3 | +var cssMin = require('gulp-css'); | |
| 4 | + | |
| 5 | + | |
| 6 | +// Need because of `yii console` | |
| 7 | +var rename = require('gulp-rename'); | |
| 8 | +var minimist = require('minimist'); | |
| 9 | +var options = minimist(process.argv.slice(2), { string: 'src', string: 'dist' }); | |
| 10 | +var destDir = options.dist.substring(0, options.dist.lastIndexOf("/")); | |
| 11 | +var destFile = options.dist.replace(/^.*[\\\/]/, ''); | |
| 12 | + | |
| 13 | + | |
| 14 | +// Use `compress-js` task for JavaScript files | |
| 15 | +gulp.task('compress-js', function() { | |
| 16 | + gulp.src(options.src) | |
| 17 | + .pipe(uglify()) | |
| 18 | + | |
| 19 | + .pipe(rename(destFile)) | |
| 20 | + .pipe(gulp.dest(destDir)) | |
| 21 | +}); | |
| 22 | + | |
| 23 | +// Use `compress-css` task for CSS files | |
| 24 | +gulp.task('compress-css', function() { | |
| 25 | + gulp.src(options.src) | |
| 26 | + .pipe(cssMin()) | |
| 27 | + | |
| 28 | + .pipe(rename(destFile)) | |
| 29 | + .pipe(gulp.dest(destDir)) | |
| 30 | +}); | |
| 0 | 31 | \ No newline at end of file | ... | ... |
| 1 | +{ | |
| 2 | + "name": "yii2-gulp", | |
| 3 | + "version": "1.0.0", | |
| 4 | + "description": "Yii2 Gulp", | |
| 5 | + "keywords": [ | |
| 6 | + "tools" | |
| 7 | + ], | |
| 8 | + "author": "Darko Lukic", | |
| 9 | + "license": "ISC", | |
| 10 | + "dependencies": { | |
| 11 | + "gulp": "*", | |
| 12 | + "gulp-uglify": "*", | |
| 13 | + "minimist": "*", | |
| 14 | + "gulp-rename": "*", | |
| 15 | + "gulp-css": "*" | |
| 16 | + } | |
| 17 | +} | ... | ... |