const AWS = require('aws-sdk');
require('dotenv').config(); // для получения переменных из окружения Node.js
class YandexCloud {
constructor () {
this.aws = new AWS.S3({
endpoint: 'https://storage.yandexcloud.net',
accessKeyId: process.env.YA_STORAGE_ACCESS_KEY, // берем ключ из переменной окружения
secretAccessKey: process.env.YA_STORAGE_SECRET_KEY, // берем секрет из переменной окружения
region: 'ru-central1',
httpOptions: {
timeout: 10000,
connectTimeout: 10000
},
});
}
upload = async ({file,path,fileName}) => {
try {
const params = {
Bucket: 'название', // название созданного bucket
Key: `${path}/${fileName}`, // путь и название файла в облаке (path без слэша впереди)
Body: file, // сам файл
ContentType: 'text/plain', // тип файла
}
const result = await new Promise(function(resolve, reject) {
this.aws.upload(params, function(err, data) {
if (err) return reject(err);
return resolve(data);
});
});
return result;
} catch (e) {
console.error(e);
}
}
}
const YaCloud = new YandexCloud();
YaCloud.upload({
file: '', // файл
path: 'путь/в/облаке',
fileName: 'файл.txt',
})
.block {
foo: bar;
&_element {
bar: baz;
}
}
Но при использование вложенности scss формируется длинный селекторСам факт использования SASS никак на сложность селекторов не влияет. Результат зависит от исходного кода, а не от инструмента компиляции.
<div class="hero-section__grid">
...
<div class="hero-item hero-section__hero-item">
<h2 class="hero-item__header">Hero Item 1</h2>
...
</div>
</div>
<div class="hero-section__grid">
...
<div class="hero-section__content">
<div class="hero-item">...</div>
</div>
<div class="hero-section__pagination">...</div>
<div class="hero-section__footer">...</div>
</div>
<!-- 1 -->
<section class="info">
<div class="info__something container">
<div class="info__wrapper">
<!-- 2 -->
<section class="info container">
<div class="info__wrapper">
<!-- 3 -->
<section class="info">
<div class="info__wrapper container">
.section{
/* Стили общие */
}
.services {
/* Стили свои */
}
.advantages {
/* Стили свои */
}
<section class="section services">
<h2 class="heading">Услуги</h2>
<ul class="services__list">
<li>Услуга 1</li>
<li>Услуга 2</li>
<li>Услуга 3</li>
</ul>
</section>
<section class="section advantages">
<h2 class="heading">Преимущества</h2>
<ul class="advantages__list">
<li>Преимущество 1</li>
<li>Преимущество 2</li>
<li>Преимущество 3</li>
</ul>
</section>
<p class = "title title_size_big">
</p>
<div class="test" style="margin-bottom:10px">
</div>
.block {} /* без стилей */
.block_green { color: green; }
.block_red { color: red; }
<div class"block block_green">
</div>
block__elem_mod-name_mod-value
class="text text_size_s24 text_align_left"
text
с модификаторами.size
со значением s24
align
со значением left
Блок -> Элемент
.<header class="header-section">
<div class="container header">
<div class="header__logo logo">
<h2 class="logo__title">APP Design</h2>
<p class="logo__description">Free PSD Website Template</p>
</div>
<form action="" class="header__search search-form">
<input type="text" placeholder="" class="search-form__field">
<button class="search-form__button">Search</button>
</form>
</div>
</header>
.header-section {}
.header {
&__logo {}
&__search {}
}
.logo {
&__title {}
&__description {}
}
.search-form {
&__field {}
&__button {}
}
<section class="services-list">
<h2 class="content-title services-list__title">Awesome services</h2>
<article class="services-item">
<img class="services-item__img" src="#" alt="">
<h3 class="services-item__title">Express Services</h3>
<p class="services-item__desc">Lorem ipsum.</p>
<a class="services-item__link" href="#">Read more</a>
</article>
</section>