diff --git a/assets/styles/base/fonts.css b/assets/styles/base/fonts.css new file mode 100644 index 0000000..5a3db5a --- /dev/null +++ b/assets/styles/base/fonts.css @@ -0,0 +1,45 @@ +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 400; + font-display: auto; + src: url(../fonts/Open_Sans-italic-400.woff) format('woff'); + unicode-range: U+0-10FFFF; +} + +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 300; + font-display: auto; + src: url(../fonts/Open_Sans-normal-300.woff) format('woff'); + unicode-range: U+0-10FFFF; +} + +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 400; + font-display: auto; + src: url(../fonts/Open_Sans-normal-400.woff) format('woff'); + unicode-range: U+0-10FFFF; +} + +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 600; + font-display: auto; + src: url(../fonts/Open_Sans-normal-600.woff) format('woff'); + unicode-range: U+0-10FFFF; +} + +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 700; + font-display: auto; + src: url(../fonts/Open_Sans-normal-700.woff) format('woff'); + unicode-range: U+0-10FFFF; +} + diff --git a/fonts.list b/fonts.list new file mode 100644 index 0000000..7e75eb2 --- /dev/null +++ b/fonts.list @@ -0,0 +1 @@ +Open+Sans:ital,wght@0,300;0,400;0,600;0,700;1,300;1,400 diff --git a/gulpfile.js b/gulpfile.js index 26f5894..302beca 100755 --- a/gulpfile.js +++ b/gulpfile.js @@ -19,6 +19,7 @@ const combineMedia = require('gulp-combine-media'); const sourcemaps = require('gulp-sourcemaps'); const uglify = require('gulp-uglify-es').default; const babel = require('gulp-babel'); +const googleWebFonts = require('gulp-google-webfonts'); const sassThemes = require('gulp-sass-themes'); const wiredep = require('wiredep').stream; @@ -51,11 +52,11 @@ const project = manifest.getProjectGlobs(); * 编译时的选项 */ const enabled = { - rev : argv.production, - maps : argv.production, - failStyleTask: argv.production, - failJSHint : argv.production, - stripJSDebug : argv.production, + rev : argv.production, + maps : argv.production, + failStyleTask: argv.production, + failJSHint : argv.production, + stripJSDebug : argv.production, }; /** @@ -68,152 +69,159 @@ const revManifest = path.dist + 'assets.json'; */ const cssTasks = (filename) => { - return lazypipe().pipe(() => { - return gulpif(!enabled.failStyleTask, plumber()); - }).pipe(() => { - return gulpif(enabled.maps, sourcemaps.init()); - }).pipe(() => { - return gulpif('*.scss', sass({ - outputStyle : 'nested', // libsass doesn't support expanded yet - precision : 10, - includePaths : ['.'], - errLogToConsole: !enabled.failStyleTask, - })); - }).pipe(concat, filename).pipe(() => { - const file_name = filename.split('.').slice(0, -1); - return mediaQueriesSplitter([ - // 基础样式,无论大小,都需要使用 - { - media : 'none', - filename: file_name + '.base.css', - }, + return lazypipe().pipe(() => { + return gulpif(!enabled.failStyleTask, plumber()); + }).pipe(() => { + return gulpif(enabled.maps, sourcemaps.init()); + }).pipe(() => { + return gulpif('*.scss', sass({ + outputStyle : 'nested', // libsass doesn't support expanded yet + precision : 10, + includePaths : ['.'], + errLogToConsole: !enabled.failStyleTask, + })); + }).pipe(concat, filename).pipe(() => { + const file_name = filename.split('.').slice(0, -1); + return mediaQueriesSplitter([ + // 基础样式,无论大小,都需要使用 + { + media : 'none', + filename: file_name + '.base.css', + }, - // 平板设备的样式 - { - media : [ - { - min : '576px', - minUntil: '768px', - }, - { - min: '576px', - max: '768px', - }], - filename: file_name + '.mobile.css', - }, + // 平板设备的样式 + { + media : [ + { + min : '576px', + minUntil: '768px', + }, + { + min: '576px', + max: '768px', + }], + filename: file_name + '.mobile.css', + }, - // 平板电脑样式 - { - media : [ - { - min : '768px', - minUntil: '992px', - }, - { - min: '768px', - max: '992px', - }], - filename: file_name + '.tablet.css', - }, + // 平板电脑样式 + { + media : [ + { + min : '768px', + minUntil: '992px', + }, + { + min: '768px', + max: '992px', + }], + filename: file_name + '.tablet.css', + }, - // 笔记本电脑样式 - { - media : [ - { - min : '992px', - minUntil: '1200px', - }, - { - min: '992px', - max: '1200px', - }], - filename: file_name + '.laptop.css', - }, + // 笔记本电脑样式 + { + media : [ + { + min : '992px', + minUntil: '1200px', + }, + { + min: '992px', + max: '1200px', + }], + filename: file_name + '.laptop.css', + }, - // 台式机样式 - { - media : ['none', { min: '1200px' }], - filename: file_name + '.css', - }, - ]); - }).pipe(() => { - return combineMedia(); - }).pipe(autoprefixer).pipe(() => { - return gulpif(enabled.rev, cssNano({ safe: true })); - }).pipe(() => { - return gulpif(!enabled.rev, cssNano({ safe: true })); - }).pipe(() => { - return gulpif(enabled.rev, rev()); - }).pipe(() => { - return gulpif(enabled.maps, sourcemaps.write('.', { - sourceRoot: 'assets/styles/', - })); - })(); + // 台式机样式 + { + media : ['none', {min: '1200px'}], + filename: file_name + '.css', + }, + ]); + }).pipe(() => { + return combineMedia(); + }).pipe(autoprefixer).pipe(() => { + return gulpif(enabled.rev, cssNano({safe: true})); + }).pipe(() => { + return gulpif(!enabled.rev, cssNano({safe: true})); + }).pipe(() => { + return gulpif(enabled.rev, rev()); + }).pipe(() => { + return gulpif(enabled.maps, sourcemaps.write('.', { + sourceRoot: 'assets/styles/', + })); + })(); }; /** * JS 处理管道 */ const jsTasks = (filename) => { - return lazypipe().pipe(() => { - return gulpif(enabled.maps, sourcemaps.init()); - }).pipe(concat, filename).pipe(() => { - return babel({ - presets: ['env'], - }); - }).pipe(uglify, { - compress: { - 'drop_debugger': enabled.stripJSDebug, - }, - }).pipe(() => { - return gulpif(enabled.rev, rev()); - }).pipe(() => { - return gulpif(enabled.maps, sourcemaps.write('.', { - sourceRoot: 'assets/scripts/', - })); - })(); + return lazypipe().pipe(() => { + return gulpif(enabled.maps, sourcemaps.init()); + }).pipe(concat, filename).pipe(uglify, { + compress: { + 'drop_debugger': enabled.stripJSDebug, + }, + }).pipe(() => { + return gulpif(enabled.rev, rev()); + }).pipe(() => { + return gulpif(enabled.maps, sourcemaps.write('.', { + sourceRoot: 'assets/scripts/', + })); + })(); }; /** * 写入到版本说明 */ const writeToManifest = (directory) => { - return lazypipe(). - pipe(gulp.dest, path.dist + directory). - pipe(browserSync.stream, { match: '**/*.{js,css}' }). - pipe(rev.manifest, revManifest, { - base : path.dist, - merge: true, - }). - pipe(gulp.dest, path.dist)(); + return lazypipe(). + pipe(gulp.dest, path.dist + directory). + pipe(browserSync.stream, {match: '**/*.{js,css}'}). + pipe(rev.manifest, revManifest, { + base : path.dist, + merge: true, + }). + pipe(gulp.dest, path.dist)(); }; +/** + * 下载 Google font 到本地 + */ +gulp.task('gfonts', function() { + return gulp.src('./fonts.list').pipe(googleWebFonts({ + cssDir : '../styles/components', + fontsDir: '../fonts/', + cssFilename: '_fonts.scss' + })).pipe(gulp.dest('assets/fonts')); +}); + /** * 自动注入 Less 和 Sass bower 依赖 */ gulp.task('wiredep', gulp.series(async () => { - return gulp.src(project.css). - pipe(wiredep()). - pipe(changed(path.source + 'styles')). - pipe(gulp.dest(path.source + 'styles')); + return gulp.src(project.css). + pipe(wiredep()). + pipe(changed(path.source + 'styles')). + pipe(gulp.dest(path.source + 'styles')); })); /** * 编译、合并、优化 Bower CSS 和项目 CSS */ gulp.task('styles', gulp.series('wiredep', async () => { - const merged = merge(); - manifest.forEachDependency('css', (dep) => { - let cssTasksInstance = cssTasks(dep.name); - if (!enabled.failStyleTask) { - cssTasksInstance.on('error', (err) => { - console.error(err.message); - this.emit('end'); - }); - } - merged.add(gulp.src(dep.globs, { base: 'styles' }).pipe(cssTasksInstance)); - }); - return merged.pipe(writeToManifest('styles')); + const merged = merge(); + manifest.forEachDependency('css', (dep) => { + let cssTasksInstance = cssTasks(dep.name); + if (!enabled.failStyleTask) { + cssTasksInstance.on('error', (err) => { + console.error(err.message); + this.emit('end'); + }); + } + merged.add(gulp.src(dep.globs, {base: 'styles'}).pipe(cssTasksInstance)); + }); + return merged.pipe(writeToManifest('styles')); })); /** @@ -221,85 +229,85 @@ gulp.task('styles', gulp.series('wiredep', async () => { */ //gulp.task('scripts', ['jshint'], () => { gulp.task('scripts', gulp.series(async () => { - const merged = merge(); - manifest.forEachDependency('js', (dep) => { - merged.add(gulp.src(dep.globs, { base: 'scripts' }).pipe(jsTasks(dep.name))); - }); - return merged.pipe(writeToManifest('scripts')); + const merged = merge(); + manifest.forEachDependency('js', (dep) => { + merged.add(gulp.src(dep.globs, {base: 'scripts'}).pipe(jsTasks(dep.name))); + }); + return merged.pipe(writeToManifest('scripts')); })); /** * 收集所有的字体并输出到 fonts 文件夹 */ gulp.task('fonts', gulp.series(async () => { - return gulp.src(globs.fonts).pipe(flatten()).pipe(gulp.dest(path.dist + 'fonts')).pipe(browserSync.stream()); + return gulp.src(globs.fonts).pipe(flatten()).pipe(gulp.dest(path.dist + 'fonts')).pipe(browserSync.stream()); })); /** * 无损压缩图像 */ gulp.task('images', gulp.series(async () => { - return gulp.src(globs.images).pipe(imagemin({ - progressive: true, - interlaced : true, - svgoPlugins: [ - { removeUnknownsAndDefaults: false }, - { cleanupIDs: false }], - })).pipe(gulp.dest(path.dist + 'images')).pipe(browserSync.stream()); + return gulp.src(globs.images).pipe(imagemin({ + progressive: true, + interlaced : true, + svgoPlugins: [ + {removeUnknownsAndDefaults: false}, + {cleanupIDs: false}], + })).pipe(gulp.dest(path.dist + 'images')).pipe(browserSync.stream()); })); /** * JSHint 任务 */ gulp.task('jshint', gulp.series(async () => { - return gulp.src([ - 'bower.json', - 'gulpfile.js'].concat(project.js)). - pipe(jshint()). - pipe(jshint.reporter('jshint-stylish')). - pipe(gulpif(enabled.failJSHint, jshint.reporter('fail'))); + return gulp.src([ + 'bower.json', + 'gulpfile.js'].concat(project.js)). + pipe(jshint()). + pipe(jshint.reporter('jshint-stylish')). + pipe(gulpif(enabled.failJSHint, jshint.reporter('fail'))); })); /** * 清理编译文件夹 */ gulp.task('clean', gulp.series(async () => { - require('del').bind(null, [path.dist]); + require('del').bind(null, [path.dist]); })); /** * 监控前端资源改变, 使用 BrowserSync 自动同步 */ gulp.task('watch', gulp.parallel(() => { - browserSync.init({ - files : [ - '{lib,templates}/**/*.php', - '*.php', - ], - proxy : config.devUrl, - snippetOptions: { - whitelist: ['/wp-admin/admin-ajax.php'], - blacklist: ['/wp-admin/**'], - }, - }); - gulp.watch([path.source + 'styles/**/*'], gulp.series('styles')); - gulp.watch([path.source + 'scripts/**/*'], gulp.series('jshint', 'scripts')); - gulp.watch([path.source + 'fonts/**/*'], gulp.series('fonts')); - gulp.watch([path.source + 'images/**/*'], gulp.series('images')); - gulp.watch(['bower.json', 'assets/manifest.json'], gulp.series('build')); + browserSync.init({ + files : [ + '{lib,templates}/**/*.php', + '*.php', + ], + proxy : config.devUrl, + snippetOptions: { + whitelist: ['/wp-admin/admin-ajax.php'], + blacklist: ['/wp-admin/**'], + }, + }); + gulp.watch([path.source + 'styles/**/*'], gulp.series('styles')); + gulp.watch([path.source + 'scripts/**/*'], gulp.series('jshint', 'scripts')); + gulp.watch([path.source + 'fonts/**/*'], gulp.series('fonts')); + gulp.watch([path.source + 'images/**/*'], gulp.series('images')); + gulp.watch(['bower.json', 'assets/manifest.json'], gulp.series('build')); })); /** * 编译所有资源 */ gulp.task('build', gulp.parallel('styles', 'scripts', 'fonts', - 'images', gulp.series((callback) => { - callback(); - }))); + 'images', gulp.series((callback) => { + callback(); + }))); /** * 默认使用, 进行完整编译, 为生产环境编译使用 `gulp --production` */ gulp.task('default', gulp.series('clean', () => { - gulp.start('build'); -})); \ No newline at end of file + gulp.start('build'); +})); diff --git a/package.json b/package.json index 7dc63a9..20cbde4 100644 --- a/package.json +++ b/package.json @@ -1,83 +1,84 @@ { - "name": "wizhi-ui", - "version": "0.0.1", - "author": "Amos Lee <4626395@gmail.com>", - "homepage": "https://www.wpzhiku.com/", - "private": true, - "repository": { - "type": "git", - "url": "git://github.com/iwillhappy1314/wizhi-ui.git" - }, - "bugs": { - "url": "https://github.com/iwillhappy1314/wizhi-ui/issues" - }, - "licenses": [ - { - "type": "MIT", - "url": "http://opensource.org/licenses/MIT" + "name": "wizhi-ui", + "version": "0.0.1", + "author": "Amos Lee <4626395@gmail.com>", + "homepage": "https://www.wpzhiku.com/", + "private": true, + "repository": { + "type": "git", + "url": "git://github.com/iwillhappy1314/wizhi-ui.git" + }, + "bugs": { + "url": "https://github.com/iwillhappy1314/wizhi-ui/issues" + }, + "licenses": [ + { + "type": "MIT", + "url": "http://opensource.org/licenses/MIT" + } + ], + "scripts": { + "dev": "gulp build", + "build": "gulp build --production", + "watch": "gulp watch", + "jshint": "gulp jshint", + "jscs": "jscs gulpfile.js assets/scripts/*.js" + }, + "engines": { + "node": ">= 8", + "npm": ">= 6" + }, + "browserslist": [ + "last 1 version", + "> 1%", + "IE 10" + ], + "devDependencies": { + "@babel/core": "^7.9.6", + "@fullhuman/postcss-purgecss": "^2.1.0", + "@wenprise/purgecss-with-wordpress": "^1.0.4", + "asset-builder": "^2.0.0", + "browser-sync": "^2.26.7", + "del": "^5.1.0", + "gulp": "^4.0", + "gulp-autoprefixer": "^7.0.1", + "gulp-babel": "^8.0.0", + "gulp-changed": "^4.0.2", + "gulp-combine-media": "^0.1.0", + "gulp-concat": "^2.6.0", + "gulp-cssnano": "^2.1.3", + "gulp-flatten": "0.4.0", + "gulp-if": "^3.0.0", + "gulp-imagemin": "^7.1.0", + "gulp-jshint": "^2.0.1", + "gulp-less": "^4.0.1", + "gulp-media-queries-splitter": "^1.0.3", + "gulp-plumber": "^1.2.1", + "gulp-postcss": "^8.0.0", + "gulp-purgecss": "^2.1.0", + "gulp-rename": "^2.0.0", + "gulp-rev": "^9.0.0", + "gulp-sass": "^4.0.2", + "gulp-sass-themes": "^2.0.2", + "gulp-sourcemaps": "^2.6.5", + "gulp-uglify": "^3.0.2", + "gulp-uglify-es": "^2.0.0", + "gulp-google-webfonts": "^4.0.0", + "imagemin-pngcrush": "^6.0.0", + "jshint": "^2.11.0", + "jshint-stylish": "^2.0.1", + "lazypipe": "^1.0.2", + "merge-stream": "^2.0.0", + "minimist": "^1.2.2", + "postcss-import": "^12.0.1", + "postcss-nesting": "^7.0.1", + "postcss-node-sass": "^2.1.8", + "postcss-scss": "^2.0.0", + "traverse": "^0.6.6", + "wiredep": "^4.0.0" + }, + "dependencies": { + "bulma": "^0.8.1", + "tailwindcss": "^1.1.4" } - ], - "scripts": { - "dev": "gulp build", - "build": "gulp build --production", - "watch": "gulp watch", - "jshint": "gulp jshint", - "jscs": "jscs gulpfile.js assets/scripts/*.js" - }, - "engines": { - "node": ">= 8", - "npm": ">= 6" - }, - "browserslist": [ - "last 1 version", - "> 1%", - "IE 10" - ], - "devDependencies": { - "@babel/core": "^7.9.6", - "@fullhuman/postcss-purgecss": "^2.1.0", - "@wenprise/purgecss-with-wordpress": "^1.0.4", - "asset-builder": "^2.0.0", - "browser-sync": "^2.26.7", - "del": "^5.1.0", - "gulp": "^4.0", - "gulp-autoprefixer": "^7.0.1", - "gulp-babel": "^8.0.0", - "gulp-changed": "^4.0.2", - "gulp-combine-media": "^0.1.0", - "gulp-concat": "^2.6.0", - "gulp-cssnano": "^2.1.3", - "gulp-flatten": "0.4.0", - "gulp-if": "^3.0.0", - "gulp-imagemin": "^7.1.0", - "gulp-jshint": "^2.0.1", - "gulp-less": "^4.0.1", - "gulp-media-queries-splitter": "^1.0.3", - "gulp-plumber": "^1.2.1", - "gulp-postcss": "^8.0.0", - "gulp-purgecss": "^2.1.0", - "gulp-rename": "^2.0.0", - "gulp-rev": "^9.0.0", - "gulp-sass": "^4.0.2", - "gulp-sass-themes": "^2.0.2", - "gulp-sourcemaps": "^2.6.5", - "gulp-uglify": "^3.0.2", - "gulp-uglify-es": "^2.0.0", - "imagemin-pngcrush": "^6.0.0", - "jshint": "^2.11.0", - "jshint-stylish": "^2.0.1", - "lazypipe": "^1.0.2", - "merge-stream": "^2.0.0", - "minimist": "^1.2.2", - "postcss-import": "^12.0.1", - "postcss-nesting": "^7.0.1", - "postcss-node-sass": "^2.1.8", - "postcss-scss": "^2.0.0", - "traverse": "^0.6.6", - "wiredep": "^4.0.0" - }, - "dependencies": { - "bulma": "^0.8.1", - "tailwindcss": "^1.1.4" - } } diff --git a/yarn.lock b/yarn.lock index 307bd31..bebf8af 100644 --- a/yarn.lock +++ b/yarn.lock @@ -682,6 +682,11 @@ async@1.5.2, async@^1.2.1: resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo= +async@^0.9.0: + version "0.9.2" + resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" + integrity sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0= + asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" @@ -1536,7 +1541,7 @@ combined-stream@^1.0.6, combined-stream@~1.0.6: dependencies: delayed-stream "~1.0.0" -commander@^2.2.0, commander@^2.20.0, commander@^2.8.1: +commander@^2.2.0, commander@^2.20.0, commander@^2.8.1, commander@^2.9.0: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== @@ -3503,6 +3508,18 @@ gulp-flatten@0.4.0: plugin-error "^0.1.2" through2 "^2.0.0" +gulp-google-webfonts@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/gulp-google-webfonts/-/gulp-google-webfonts-4.0.0.tgz#459e689d262adc3b17399fcbc127a9540e0ebac2" + integrity sha512-O6wzsEDNfI+DUAJdO6HZfmIKejVt3gXSMzoNpIbbhgJciDTgfV5xYYZZs1/M0q7lagxPw856do4T5Q6RsHVDjA== + dependencies: + async "^0.9.0" + commander "^2.9.0" + lodash.defaults "^3.1.2" + mkdirp "^0.5.1" + through2 "^0.6.5" + vinyl "^2.0.0" + gulp-if@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/gulp-if/-/gulp-if-3.0.0.tgz#6c3e7edc8bafadc34f2ebecb314bf43324ba1e40" @@ -4825,6 +4842,14 @@ locate-path@^5.0.0: dependencies: p-locate "^4.1.0" +lodash._baseassign@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz#8c38a099500f215ad09e59f1722fd0c52bfe0a4e" + integrity sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4= + dependencies: + lodash._basecopy "^3.0.0" + lodash.keys "^3.0.0" + lodash._basecopy@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36" @@ -4840,6 +4865,20 @@ lodash._basevalues@^3.0.0: resolved "https://registry.yarnpkg.com/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz#5b775762802bde3d3297503e26300820fdf661b7" integrity sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc= +lodash._bindcallback@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz#e531c27644cf8b57a99e17ed95b35c748789392e" + integrity sha1-5THCdkTPi1epnhftlbNcdIeJOS4= + +lodash._createassigner@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz#838a5bae2fdaca63ac22dee8e19fa4e6d6970b11" + integrity sha1-g4pbri/aymOsIt7o4Z+k5taXCxE= + dependencies: + lodash._bindcallback "^3.0.0" + lodash._isiterateecall "^3.0.0" + lodash.restparam "^3.0.0" + lodash._getnative@^3.0.0: version "3.9.1" resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" @@ -4870,6 +4909,15 @@ lodash._root@^3.0.0: resolved "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692" integrity sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI= +lodash.assign@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-3.2.0.tgz#3ce9f0234b4b2223e296b8fa0ac1fee8ebca64fa" + integrity sha1-POnwI0tLIiPilrj6CsH+6OvKZPo= + dependencies: + lodash._baseassign "^3.0.0" + lodash._createassigner "^3.0.0" + lodash.keys "^3.0.0" + lodash.assign@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" @@ -4885,6 +4933,14 @@ lodash.clonedeep@^4.3.2: resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= +lodash.defaults@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-3.1.2.tgz#c7308b18dbf8bc9372d701a73493c61192bd2e2c" + integrity sha1-xzCLGNv4vJNy1wGnNJPGEZK9Liw= + dependencies: + lodash.assign "^3.0.0" + lodash.restparam "^3.0.0" + lodash.defaults@^4.0.1: version "4.2.0" resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" @@ -7922,7 +7978,7 @@ through2@2.X, through2@^2.0.0, through2@^2.0.1, through2@^2.0.3, through2@~2.0.0 readable-stream "~2.3.6" xtend "~4.0.1" -through2@^0.6.1: +through2@^0.6.1, through2@^0.6.5: version "0.6.5" resolved "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48" integrity sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=