Commit 45941335 authored by Yuri Bondarenko's avatar Yuri Bondarenko

Init

parents
{
"parserOptions": {
"ecmaVersion": 6,
"sourceType": "module",
"ecmaFeatures": {
}
},
"env": {
"browser": true,
"jquery": true,
"node": false
},
"extends": "eslint:recommended",
"rules": {
"indent": [
"error",
"tab"
],
"linebreak-style": [
"error",
"unix"
],
"quotes": [
"error",
"single"
],
"semi": [
"error",
"always"
]
}
}
\ No newline at end of file
node_modules
dev
prod
\ No newline at end of file
{
"tagname-lowercase": true,
"attr-lowercase": true,
"attr-value-double-quotes": true,
"tag-pair": true,
"spec-char-escape": true,
"id-unique": true,
"src-not-empty": true,
"attr-no-duplication": true,
"title-require": true,
"alt-require": true,
"tag-self-close": true,
"id-class-ad-disabled": true
}
dev
prod
\ No newline at end of file
{
"rules": {
"at-rule-no-unknown": [true, {
"ignoreAtRules": [
"rules"
]
}],
"block-no-empty": null,
"color-no-invalid-hex": true,
"comment-no-empty": true,
"declaration-block-no-duplicate-properties": [
true,
{
"ignore": [
"consecutive-duplicates-with-different-values"
]
}
],
"declaration-block-no-shorthand-property-overrides": true,
"font-family-no-duplicate-names": true,
"font-family-no-missing-generic-family-keyword": true,
"function-calc-no-unspaced-operator": true,
"function-linear-gradient-no-nonstandard-direction": true,
"keyframe-declaration-no-important": true,
"media-feature-name-no-unknown": true,
"no-descending-specificity": true,
"no-duplicate-at-import-rules": true,
"no-duplicate-selectors": true,
"no-empty-source": true,
"no-extra-semicolons": true,
"no-invalid-double-slash-comments": true,
"property-no-unknown": true,
"selector-pseudo-class-no-unknown": true,
"selector-pseudo-element-no-unknown": true,
"selector-type-no-unknown": true,
"string-no-newline": true,
"unit-no-unknown": true,
"at-rule-empty-line-before": [
"always",
{
"except": [
"blockless-after-same-name-blockless"
],
"ignore": [
"after-comment"
]
}
],
"at-rule-name-case": "lower",
"at-rule-name-space-after": "always-single-line",
"at-rule-semicolon-newline-after": "always",
"block-closing-brace-empty-line-before": "never",
"block-closing-brace-newline-after": "always",
"block-closing-brace-newline-before": "always-multi-line",
"block-closing-brace-space-before": "always-single-line",
"block-opening-brace-newline-after": "always-multi-line",
"block-opening-brace-space-after": "always-single-line",
"block-opening-brace-space-before": "always",
"color-hex-length": "short",
"comment-empty-line-before": [
"always",
{
"ignore": [
"stylelint-commands"
]
}
],
"comment-whitespace-inside": "always",
"custom-property-empty-line-before": [
"always",
{
"except": [
"after-custom-property",
"first-nested"
],
"ignore": [
"after-comment",
"inside-single-line-block"
]
}
],
"declaration-bang-space-after": "never",
"declaration-bang-space-before": "always",
"declaration-block-semicolon-newline-after": "always-multi-line",
"declaration-block-semicolon-space-after": "always-single-line",
"declaration-block-semicolon-space-before": "never",
"declaration-block-single-line-max-declarations": 1,
"declaration-block-trailing-semicolon": "always",
"declaration-colon-newline-after": "always-multi-line",
"declaration-colon-space-after": "always-single-line",
"declaration-colon-space-before": "never",
"declaration-empty-line-before": [
"always",
{
"except": [
"after-declaration",
"first-nested"
],
"ignore": [
"after-comment",
"inside-single-line-block"
]
}
],
"function-comma-newline-after": "always-multi-line",
"function-comma-space-after": "always-single-line",
"function-comma-space-before": "never",
"function-max-empty-lines": 0,
"function-name-case": "lower",
"function-parentheses-newline-inside": "always-multi-line",
"function-parentheses-space-inside": "never-single-line",
"function-whitespace-after": "always",
"indentation": "tab",
"length-zero-no-unit": true,
"max-empty-lines": 1,
"media-feature-colon-space-after": "always",
"media-feature-colon-space-before": "never",
"media-feature-name-case": "lower",
"media-feature-parentheses-space-inside": "never",
"media-feature-range-operator-space-after": "always",
"media-feature-range-operator-space-before": "always",
"media-query-list-comma-newline-after": "always-multi-line",
"media-query-list-comma-space-after": "always-single-line",
"media-query-list-comma-space-before": "never",
"no-eol-whitespace": true,
"no-missing-end-of-source-newline": null,
"number-leading-zero": "always",
"number-no-trailing-zeros": true,
"property-case": "lower",
"rule-empty-line-before": [
"always-multi-line",
{
"ignore": [
"after-comment"
]
}
],
"selector-attribute-brackets-space-inside": "never",
"selector-attribute-operator-space-after": "never",
"selector-attribute-operator-space-before": "never",
"selector-combinator-space-after": "always",
"selector-combinator-space-before": "always",
"selector-descendant-combinator-no-non-space": true,
"selector-list-comma-newline-after": "always",
"selector-list-comma-space-before": "never",
"selector-max-empty-lines": 0,
"selector-pseudo-class-case": "lower",
"selector-pseudo-class-parentheses-space-inside": "never",
"selector-pseudo-element-case": "lower",
"selector-pseudo-element-colon-notation": "double",
"selector-type-case": "lower",
"unit-case": "lower",
"value-list-comma-newline-after": "always-multi-line",
"value-list-comma-space-after": "always-single-line",
"value-list-comma-space-before": "never",
"value-list-max-empty-lines": 0
}
}
\ No newline at end of file
{
// See http://go.microsoft.com/fwlink/?LinkId=827846 to learn about workspace recommendations.
// Extension identifier format: ${publisher}.${name}. Example: vscode.csharp
// List of extensions which should be recommended for users of this workspace.
"recommendations": [
"dbaeumer.vscode-eslint",
"shinnn.stylelint",
"mkaufman.htmlhint",
"formulahendry.terminal"
],
// List of extensions recommended by VS Code that should not be recommended for users of this workspace.
"unwantedRecommendations": [
]
}
\ No newline at end of file
{
"editor.insertSpaces": false,
"html.format.indentInnerHtml": true,
"cSpell.words": [
"context"
]
}
\ No newline at end of file
/**
* ===================== SETTINGS ========================
*/
/**
* Библиотеки CSS
*/
var libCSS = [
// 'src/assets/fonts/stylesheet.css',
// 'node_modules/bootstrap/dist/css/bootstrap.css'
];
/**
* Версии поддерживаемых браузеров
*/
var platform = [ 'last 4 versions', 'ie >= 11', 'iOS >= 9' ];
/* ======================================================== */
/* global require */
var gulp = require( 'gulp' ); // Собственно gulp
var pump = require( 'pump' ); // отслеживание ошибок
var concat = require( 'gulp-concat' ); // объединение набора файлов в один
var postcss = require( 'gulp-postcss' ); // Пост-обработка CSS
var postcssPresetEnv = require( 'postcss-preset-env' ); // CSS Next
var cssvariables = require('postcss-css-variables');
var sourcemaps = require( 'gulp-sourcemaps' ); // карты исходного кода
var webpack = require( 'webpack-stream' );
var compiler = require( 'webpack' );
var imagemin = require( 'gulp-image' ); // оптимизация картинок
var cache = require( 'gulp-cache' );
var include = require( 'gulp-file-include' ); // включение файлов
var clean = require( 'gulp-clean' ); // удаление файлов и каталогов
var browserSync = require( 'browser-sync' ).create(); // обновление налету
// ================== CLEAN ============================
// Полная очистка
gulp.task( 'CLEAN', function( cb ){
pump([
gulp.src( [ './dev', './prod' ], { read: false } ),
clean()
], cb );
});
// ================== LESS ============================
// Собираем все CSS библиотеки
gulp.task( 'dev:css-libs', function( cb ){
pump( [
gulp.src( libCSS ),
concat( 'vendor.css' ),
gulp.dest( './dev/assets/css' )
], cb );
});
// Собираем CSS
gulp.task( 'dev:css', [ 'dev:css-libs' ], function( cb ){
// Настройки для вендорных префиксов
var plugins = [
postcssPresetEnv({
stage: 0
})
];
pump([
gulp.src( './src/assets/less/*.less' ),
sourcemaps.init(),
postcss( plugins ),
sourcemaps.write( '.' ),
gulp.dest( './dev/assets/css' ),
browserSync.stream()
], cb );
});
// Собираем все CSS библиотеки
gulp.task( 'prod:css-libs', function( cb ){
pump([
gulp.src( libCSS ),
concat( 'vendor.css' ),
gulp.dest( './docs/assets/css' )
], cb );
});
// Собираем CSS
gulp.task( 'prod:css', [ 'prod:css-libs' ], function( cb ){
// Настройки для вендорных префиксов
var plugins = [
postcssPresetEnv({
features: {
'custom-properties': false
},
stage: 0,
autoprefixer: { grid: true }
}),
cssvariables()
];
pump([
gulp.src( './src/assets/css/*.css' ),
postcss( plugins ),
gulp.dest( './prod/assets/css' )
], cb );
});
// ================== JS ============================
// Компилируем и собираем все js файлы проекта
gulp.task( 'dev:js', function(){
// ES5
pump([
gulp.src( './src/assets/js/*.js' ),
webpack( require( './webpack.dev.js' ), compiler, function( err, stats ){
// console.log( err, stats );
}),
gulp.dest( './dev/assets/js' )
]);
});
// Обрабатываем js файлы библиотек и проекта
gulp.task( 'prod:js', function(){
// ES5
pump([
gulp.src( './src/assets/js/*.js' ),
webpack( require( './webpack.prod.js' ), compiler, function( err, stats ){
// console.log( err, stats );
}),
gulp.dest( './prod/assets/js' )
]);
});
// ================== IMG ============================
// Оптимизация картинок для dev
gulp.task('dev:img', function( cb ) {
pump([
gulp.src( [
'./src/assets/img/**/*',
'./src/components/**/*.png',
'./src/components/**/*.jpg',
'./src/components/**/*.jpeg',
'./src/components/**/*.gif',
'./src/components/**/*.svg' ]
),
cache(
imagemin()
),
gulp.dest( './dev/assets/img' )
], cb );
});
// Оптимизация картинок для prod
gulp.task('prod:img', function( cb ) {
pump([
gulp.src( [
'./src/assets/img/**/*',
'./src/components/**/*.png',
'./src/components/**/*.jpg',
'./src/components/**/*.jpeg',
'./src/components/**/*.gif',
'./src/components/**/*.svg' ]
),
cache(
imagemin()
),
gulp.dest( './docs/assets/img' )
], cb );
});
// ================== HTML ============================
// HTML для dev
gulp.task( 'dev:html', function( cb ){
// HTML
pump([
gulp.src( [
'./src/**/*.html',
'!./src/assets/*.html',
'!./src/components/**/*.html']
),
include({
prefix: '@@',
basepath: '@file',
context: {
rev: +new Date
}
}),
gulp.dest( './dev' )
], cb );
});
// Статичные файлы
gulp.task( 'dev:static', function( cb ){
pump([
gulp.src( [
'./src/favicon.ico',
'./src/robots.txt',
'./src/CNAME'
] ),
gulp.dest( './dev' )
], cb );
});
// HTML для prod
gulp.task( 'prod:html', function( cb ){
pump([
gulp.src( ['./src/**/*.html', '!./src/assets/*.html', '!./src/components/**/*.html', './src/**/*.xml', './src/**/*.xsl'] ),
include({
prefix: '@@',
basepath: '@file',
context: {
rev: +new Date
}
}),
gulp.dest( './docs' )
], cb );
});
// Статичные файлы
gulp.task( 'prod:static', function( cb ){
pump([
gulp.src( [
'./src/favicon.ico',
'./src/robots.txt',
'./src/CNAME'
] ),
gulp.dest( './docs' )
], cb );
});
// ================== DEV ============================
// Слежение за dev
gulp.task( 'DEV', [ 'dev:img', 'dev:css', 'dev:js', 'dev:html', 'dev:static' ], function() {
browserSync.init({
server: {
baseDir: './dev/'
}
});
gulp.watch( './src/assets/less/*.less' , ['dev:css']);
gulp.watch( './src/components/**/*.less' , ['dev:css', 'dev:js']);
gulp.watch( './src/assets/js/*.js', [ 'dev:js' ] );
gulp.watch( './src/components/**/*.js', [ 'dev:js' ] );
gulp.watch( './dev/assets/js/**/*' ).on('change', browserSync.reload);
gulp.watch( './src/**/*.html', [ 'dev:html' ] );
gulp.watch( './src/components/**/*.html', [ 'dev:html' ] );
gulp.watch( './dev/*.html' ).on('change', browserSync.reload);
gulp.watch( './src/assets/img/**/*', [ 'dev:img' ] );
gulp.watch( './src/components/**/*.gif', [ 'dev:img' ] );
gulp.watch( './src/components/**/*.jpg', [ 'dev:img' ] );
gulp.watch( './src/components/**/*.jpeg', [ 'dev:img' ] );
gulp.watch( './src/components/**/*.png', [ 'dev:img' ] );
gulp.watch( './src/components/**/*.svg', [ 'dev:img' ] );
gulp.watch( './dev/assets/img/**/*' ).on( 'change', browserSync.reload );
});
// ================== PROD ============================
// Публикация на prod
gulp.task( 'PROD', [ 'prod:clean' ], function(){
gulp.start( 'prod:img', 'prod:css', 'prod:js', 'prod:html', 'prod:static' );
});
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
{
"name": "bndby",
"version": "2.0.0",
"description": "bnd.by site",
"repository": {
"type": "git",
"url": "https://github.com/bndby/bndby.git"
},
"author": "Bondarenko Yura",
"license": "ISC",
"homepage": "https://bnd.by/",
"devDependencies": {
"@babel/core": "^7.1.0",
"@babel/preset-env": "^7.1.0",
"autoprefixer": "^8.2.0",
"babel-loader": "^8.0.2",
"browser-sync": "^2.24.4",
"eslint": "^4.19.1",
"gulp": "^3.9.1",
"gulp-cache": "^1.0.2",
"gulp-clean": "^0.4.0",
"gulp-concat": "^2.6.1",
"gulp-file-include": "^2.0.1",
"gulp-image": "^4.3.0",
"gulp-postcss": "^7.0.1",
"gulp-rename": "^1.4.0",
"gulp-sftp": "^0.1.5",
"gulp-sourcemaps": "^2.6.4",
"htmlhint": "^0.10.1",
"postcss-css-variables": "^0.11.0",
"postcss-preset-env": "^6.4.0",
"pump": "^3.0.0",
"stylelint": "^9.2.0",
"webpack-stream": "^5.1.1"
}
}
@custom-media --viewport-medium (width <= 50rem);
@custom-selector :--heading h1, h2, h3, h4, h5, h6;
:root {
--mainColor: #12345678;
}
body {
color: var(--mainColor);
font-family: system-ui;
overflow-wrap: break-word;
}
:--heading {
background-image: image-set(url(img/heading.png) 1x, url(img/heading@2x.png) 2x);
@media (--viewport-medium) {
margin-block: 0;
}
}
a {
color: rgb(0 0 100% / 90%);
&:hover {
color: rebeccapurple;
}
}
:root {
--global-color: #fff;
--global-color-hover: green;
--btn-color: var(--global-color);
--btn-color-hover: var(--global-color-hover);
}
.btn {
color: var(--btn-color);
}
.btn:hover {
color: var(--btn-color-hover); /* works */
}
.btn.hover {
color: var(--btn-color-hover); /* this does not work */
}
\ No newline at end of file
alert(
() => {
console.log(1);
}
);
\ No newline at end of file
<!doctype html>
<html lang="ru">
<head>
<title>Default 2</title>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="stylesheet" href="/assets/css/index.css?@@rev" />
</head>
<body>
<script src="/assets/js/app.js?@@rev" type="module"></script>
</body>
</html>
/**
* конфиг для разработки
*/
/* global module */
module.exports = {
mode: 'development',
entry: [ './src/assets/js/*.js' ],
output: {
filename: '[name].js',
},
// devtool: 'source-map',
module: {
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
use: {
loader: 'babel-loader',
options: {
presets: [
[ '@babel/preset-env', {
useBuiltIns: 'usage'
} ]
]
}
}
}
]
}
};
\ No newline at end of file
/**
* конфиг для прода
*/
/* global module */
module.exports = {
mode: 'production',
entry: [ './src/assets/js/app.js' ],
output: {
filename: '[name].js',
},
// devtool: 'source-map',
module: {
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
use: {
loader: 'babel-loader',
options: {
presets: [
[ '@babel/preset-env', {
useBuiltIns: 'usage'
} ]
]
}
}
}
]
}
};
\ No newline at end of file
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