Commit 802dcfdb authored by Nikolay Gromov's avatar Nikolay Gromov

Завёл сборку библиотеки блоков

parent ead43076
......@@ -39,9 +39,7 @@ src/
## Прочие команды
`npm run build` — Сборка со сжатыми css- и js-файлами
`npm run deploy` — Сборка проекта без карт кода и отправка содержимого папки сборки на gh-pages
`npm run deploy` — Сборка проекта и отправка содержимого папки сборки на gh-pages
## Как начать новый проект c этим репозиторием
......
......@@ -9,7 +9,8 @@ let config =
],
"alwaysAddBlocks": [
"sprite-svg",
"sprite-png"
"sprite-png",
"object-fit-polyfill",
],
"addStyleBefore": [
"src/scss/functions.scss",
......
......@@ -14,7 +14,6 @@ const jsonFormat = require('json-format');
const browserSync = require('browser-sync').create();
const debug = require('gulp-debug');
const sass = require('gulp-sass');
const gulpIf = require('gulp-if');
const webpackStream = require('webpack-stream');
const buffer = require('vinyl-buffer');
const uglify = require('gulp-uglify');
......@@ -211,7 +210,10 @@ exports.writeSassImportsFile = writeSassImportsFile;
function compileSass() {
return src(`${dir.src}scss/style.scss`, { sourcemaps: true })
return src([
`${dir.src}scss/style.scss`,
`${dir.blocks}blocks-library/blocks-library.scss`,
], { sourcemaps: true })
.pipe(plumber())
.pipe(debug({title: 'Compiles:'}))
.pipe(sass({includePaths: [__dirname+'/']}))
......@@ -249,8 +251,12 @@ function buildJs() {
.pipe(plumber())
.pipe(webpackStream({
mode: 'development',
entry: {
'bundle': `./${dir.src}js/entry.js`,
'blocks-library': `./${dir.blocks}blocks-library/blocks-library.js`,
},
output: {
filename: 'bundle.js',
filename: '[name].js',
},
module: {
rules: [
......@@ -268,49 +274,12 @@ function buildJs() {
// jquery: 'jQuery'
// }
}))
.pipe(gulpIf(!isDev, uglify()))
.pipe(uglify())
.pipe(dest(`${dir.build}js`));
}
exports.buildJs = buildJs;
// function writeBlocksLibSass(cb) {
// let allBlocksWithStyleFiles = getDirectories('scss');
// let styleImports = '';
// config.addStyleBefore.forEach(function(src) {
// styleImports += `@import "${src}";\n`;
// });
// allBlocksWithStyleFiles.forEach(function(block) {
// let src = `${dir.blocks}${block}/${block}.scss`;
// styleImports += `@import "${src}";\n`;
// });
// config.addStyleAfter.forEach(function(src) {
// styleImports += `@import "${src}";\n`;
// });
// fs.writeFileSync(`${dir.src}scss/blocks-lib.scss`, styleImports);
// cb();
// }
// exports.writeBlocksLibSass = writeBlocksLibSass;
// function writeBlocksLibJs(cb) {
// let allBlocksWithJsFiles = getDirectories('js');
// let jsRequires = '';
// config.addJsBefore.forEach(function(src) {
// jsRequires += `require('${src}');\n`;
// });
// allBlocksWithJsFiles.forEach(function(block) {
// jsRequires += `require('../blocks/${block}/${block}.js');\n`;
// });
// config.addJsAfter.forEach(function(src) {
// jsRequires += `require('${src}');\n`;
// });
// fs.writeFileSync(`${dir.src}js/blocks-lib.js`, jsRequires);
// cb();
// }
// exports.writeBlocksLibJs = writeBlocksLibJs;
function clearBuildDir() {
return del([
`${dir.build}**/*`,
......@@ -346,6 +315,7 @@ function serve() {
compilePugFast,
parallel(writeSassImportsFile, writeJsRequiresFile),
parallel(compileSass, buildJs),
// buildJsLibrary,
reload
));
......
require('../main-nav/main-nav.js');
require('../burger/burger.js');
require('../scroll-link/scroll-link.js');
require('../to-top/to-top.js');
require('../off-canvas/off-canvas.js');
require('../modal/modal.js');
require('../tabs/tabs.js');
require('../baron/baron.js');
require('../../js/script.js');
// В этом файле должны быть стили для БЭМ-блока blocks-library, его элементов,
// модификаторов, псевдоселекторов, псевдоэлементов, @media-условий...
// Очередность: http://nicothin.github.io/idiomatic-pre-CSS/#priority
@import "../../scss/functions.scss";
@import "../../scss/variables.scss";
@import "../../scss/mixins.scss";
@import "../alert/alert.scss";
@import "../baron/baron.scss";
@import "../breadcrumbs/breadcrumbs.scss";
@import "../btn/btn.scss";
@import "../burger/burger.scss";
@import "../close/close.scss";
@import "../code/code.scss";
@import "../comment/comment.scss";
@import "../embed-responsive/embed-responsive.scss";
@import "../field-actions/field-actions.scss";
@import "../field-checkbox/field-checkbox.scss";
@import "../field-file/field-file.scss";
@import "../field-radio/field-radio.scss";
@import "../field-range/field-range.scss";
@import "../field-select/field-select.scss";
@import "../field-text/field-text.scss";
@import "../field-toggler/field-toggler.scss";
@import "../fields-group/fields-group.scss";
@import "../form/form.scss";
@import "../label/label.scss";
@import "../loader/loader.scss";
@import "../logo/logo.scss";
@import "../main-nav/main-nav.scss";
@import "../menu/menu.scss";
@import "../modal/modal.scss";
@import "../object-fit-polyfill/object-fit-polyfill.scss";
@import "../off-canvas/off-canvas.scss";
@import "../or/or.scss";
@import "../page/page.scss";
@import "../page-footer/page-footer.scss";
@import "../page-header/page-header.scss";
@import "../pagination/pagination.scss";
@import "../progress/progress.scss";
@import "../scroll-link/scroll-link.scss";
@import "../sprite-png/sprite-png.scss";
@import "../sprite-svg/sprite-svg.scss";
@import "../table/table.scss";
@import "../table-responsive/table-responsive.scss";
@import "../tabs/tabs.scss";
@import "../thumb/thumb.scss";
@import "../to-top/to-top.scss";
@import "../tooltip/tooltip.scss";
@import "../../scss/print.scss";
.blocks-library {
......
......@@ -5,7 +5,6 @@ block meta
meta(name='description', content='')
block append head
link(rel='stylesheet', href='css/blocks-lib.css')
style.
.components-demo {
display: block;
......
......@@ -18,7 +18,7 @@ html(class='no-js page', lang='ru')
link(rel='apple-touch-icon', sizes='180x180', href='/img/favicon/apple-touch-icon.png')
link(rel='icon', type='image/png', sizes='32x32', href='/img/favicon/favicon-32x32.png')
link(rel='icon', type='image/png', sizes='16x16', href='/img/favicon/favicon-16x16.png')
link(rel='manifest', href='/site.webmanifest')
link(rel='manifest', href='/img/favicon/site.webmanifest')
link(rel='mask-icon', href='/img/favicon/safari-pinned-tab.svg', color='#5bbad5')
meta(name='msapplication-TileColor', content='#5bbad5')
meta(name='theme-color', content='#000')
......@@ -30,6 +30,7 @@ html(class='no-js page', lang='ru')
block head
link(rel='stylesheet', href='css/style.css')
link(rel='stylesheet', href='css/blocks-library.css')
script.
document.documentElement.className = document.documentElement.className.replace('no-js', 'js');
......@@ -55,4 +56,4 @@ html(class='no-js page', lang='ru')
.off-canvas__overlay(data-toggle='off-canvas')
block page-bottom
script(src='js/blocks-lib.js')
script(src='js/blocks-library.js')
......@@ -18,7 +18,7 @@ html(class='no-js page', lang='ru')
link(rel='apple-touch-icon', sizes='180x180', href='/img/favicon/apple-touch-icon.png')
link(rel='icon', type='image/png', sizes='32x32', href='/img/favicon/favicon-32x32.png')
link(rel='icon', type='image/png', sizes='16x16', href='/img/favicon/favicon-16x16.png')
link(rel='manifest', href='/site.webmanifest')
link(rel='manifest', href='/img/favicon/site.webmanifest')
link(rel='mask-icon', href='/img/favicon/safari-pinned-tab.svg', color='#5bbad5')
meta(name='msapplication-TileColor', content='#5bbad5')
meta(name='theme-color', content='#000')
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment