From b2a90d2084d643d809e373cc10f5ca7e593e783b Mon Sep 17 00:00:00 2001 From: Alex Date: Wed, 12 Oct 2016 16:28:55 +0300 Subject: [PATCH] -Asset compression with Gulp (Now commented, uncomment on production frontend/config/main.php and re-compress) --- common/config/main.php | 8 -------- console/config/bootstrap.php | 17 +++++++++-------- frontend/assets/AppAsset.php | 2 +- frontend/config/assets-prod.php | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/config/main.php | 6 ++++++ tools/gulp/assets-config.php | 32 ++++++++++++++++++++++++++++++++ tools/gulp/gulpfile.js | 30 ++++++++++++++++++++++++++++++ tools/gulp/node_modules/.gitignore | 2 ++ tools/gulp/package.json | 17 +++++++++++++++++ 9 files changed, 171 insertions(+), 17 deletions(-) create mode 100644 frontend/config/assets-prod.php create mode 100644 tools/gulp/assets-config.php create mode 100644 tools/gulp/gulpfile.js create mode 100644 tools/gulp/node_modules/.gitignore create mode 100644 tools/gulp/package.json diff --git a/common/config/main.php b/common/config/main.php index a335b70..8f516ce 100755 --- a/common/config/main.php +++ b/common/config/main.php @@ -3,14 +3,6 @@ 'language' => 'ru', 'vendorPath' => dirname(dirname(__DIR__)) . '/vendor', 'components' => [ - 'assetManager' => [ - 'bundles' => [ - 'yii\web\JqueryAsset' =>[ - 'jsOptions' => ['position' => \yii\web\View::POS_HEAD] - ] - ], - ], - 'sms' => [ 'class' => 'common\components\SmsSender', ], diff --git a/console/config/bootstrap.php b/console/config/bootstrap.php index 5005cb3..05319ff 100755 --- a/console/config/bootstrap.php +++ b/console/config/bootstrap.php @@ -1,9 +1,10 @@ [ + 'class' => 'yii\\web\\AssetBundle', + 'basePath' => '@webroot/assets', + 'baseUrl' => '@web/assets', + 'js' => [ + 'all-f246a0d9c24e97837891e00a6176e80b.js', + ], + 'css' => [ + 'all-132788b2bdfb3ef7abdc19ec90671f19.css', + ], + ], + 'yii\\web\\JqueryAsset' => [ + 'sourcePath' => null, + 'js' => [], + 'css' => [], + 'depends' => [ + 'all', + ], + ], + 'yii\\web\\YiiAsset' => [ + 'sourcePath' => null, + 'js' => [], + 'css' => [], + 'depends' => [ + 'yii\\web\\JqueryAsset', + 'all', + ], + ], + 'yii\\bootstrap\\BootstrapAsset' => [ + 'sourcePath' => null, + 'js' => [], + 'css' => [], + 'depends' => [ + 'all', + ], + ], + 'yii\\bootstrap\\BootstrapPluginAsset' => [ + 'sourcePath' => null, + 'js' => [], + 'css' => [], + 'depends' => [ + 'yii\\web\\JqueryAsset', + 'yii\\bootstrap\\BootstrapAsset', + 'all', + ], + ], + 'yii\\bootstrap\\BootstrapThemeAsset' => [ + 'sourcePath' => null, + 'js' => [], + 'css' => [], + 'depends' => [ + 'yii\\bootstrap\\BootstrapAsset', + 'all', + ], + ], + 'frontend\\assets\\AppAsset' => [ + 'sourcePath' => null, + 'js' => [], + 'css' => [], + 'depends' => [ + 'yii\\web\\YiiAsset', + 'yii\\bootstrap\\BootstrapPluginAsset', + 'yii\\bootstrap\\BootstrapThemeAsset', + 'all', + ], + ], +]; \ No newline at end of file diff --git a/frontend/config/main.php b/frontend/config/main.php index 25c7ad4..574b1d6 100755 --- a/frontend/config/main.php +++ b/frontend/config/main.php @@ -12,6 +12,12 @@ return [ 'bootstrap' => ['log'], 'controllerNamespace' => 'frontend\controllers', 'components' => [ + 'assetManager' => [ +// 'bundles' => require(__DIR__ . '/' . 'assets-prod.php'), + 'bundles' => [ + 'frontend\assets\AppAsset', + ], + ], 'request' => [ 'baseUrl' => '', 'cookieValidationKey' => 'ndahjhjjidasuidrqeswuiuirqw89', diff --git a/tools/gulp/assets-config.php b/tools/gulp/assets-config.php new file mode 100644 index 0000000..54b800e --- /dev/null +++ b/tools/gulp/assets-config.php @@ -0,0 +1,32 @@ + 'gulp compress-js --gulpfile tools/gulp/gulpfile.js --src {from} --dist {to}', + 'cssCompressor' => 'gulp compress-css --gulpfile tools/gulp/gulpfile.js --src {from} --dist {to}', + 'bundles' => [ + 'frontend\assets\AppAsset', + ], + 'targets' => [ + 'all' => [ + 'class' => 'yii\web\AssetBundle', + 'basePath' => '@webroot/assets', + 'baseUrl' => '@web/assets', + 'js' => 'all-{hash}.js', + 'css' => 'all-{hash}.css', + 'depends' => [ + ], + ], + ], + // Asset manager configuration: + 'assetManager' => [ + 'basePath' => '@webroot/assets', + 'baseUrl' => '@web/assets', + ], +]; diff --git a/tools/gulp/gulpfile.js b/tools/gulp/gulpfile.js new file mode 100644 index 0000000..9617154 --- /dev/null +++ b/tools/gulp/gulpfile.js @@ -0,0 +1,30 @@ +var gulp = require('gulp'); +var uglify = require('gulp-uglify'); +var cssMin = require('gulp-css'); + + +// Need because of `yii console` +var rename = require('gulp-rename'); +var minimist = require('minimist'); +var options = minimist(process.argv.slice(2), { string: 'src', string: '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() { + 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() { + gulp.src(options.src) + .pipe(cssMin()) + + .pipe(rename(destFile)) + .pipe(gulp.dest(destDir)) +}); \ No newline at end of file diff --git a/tools/gulp/node_modules/.gitignore b/tools/gulp/node_modules/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/tools/gulp/node_modules/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/tools/gulp/package.json b/tools/gulp/package.json new file mode 100644 index 0000000..0a1d4e4 --- /dev/null +++ b/tools/gulp/package.json @@ -0,0 +1,17 @@ +{ + "name": "yii2-gulp", + "version": "1.0.0", + "description": "Yii2 Gulp", + "keywords": [ + "tools" + ], + "author": "Darko Lukic", + "license": "ISC", + "dependencies": { + "gulp": "*", + "gulp-uglify": "*", + "minimist": "*", + "gulp-rename": "*", + "gulp-css": "*" + } +} -- libgit2 0.21.4