Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/biko2/gulp-tasks-soda
https://github.com/biko2/gulp-tasks-soda
Last synced: 3 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/biko2/gulp-tasks-soda
- Owner: biko2
- Created: 2020-11-11T11:07:00.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2020-11-12T09:35:18.000Z (almost 4 years ago)
- Last Synced: 2024-10-10T23:05:44.517Z (29 days ago)
- Language: JavaScript
- Size: 285 KB
- Stars: 0
- Watchers: 6
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# GULP TASKS for Drupal __soda__ theme
![by Biko2](https://raw.githubusercontent.com/biko2/biko-repo-bagdes/master/png/biko-bagge-pill.png)
![GitHub last commit](https://img.shields.io/github/last-commit/biko2/gulp-tasks-soda.svg?style=plastic)
![npm](https://img.shields.io/npm/v/gulp-tasks-soda.svg)
![Maintenance](https://img.shields.io/maintenance/yes/2020.svg)## Install
```
npm install gulp-tasks-soda --save
```## Tasks
## Default paths
```javascript
var paths = {
styles: {
source: 'src/templates/',
destination: 'assets/css/'
},
scripts: {
source: 'src/templates/',
destination: 'assets/js',},
scriptsVendorFiles: [
'node_modules/bootstrap/dist/js/bootstrap.js',
],
images: {
source: 'src/media/images/',
destination: 'assets/images/'
},
fonts: {
source: 'src/fonts/',
destination: 'assets/fonts/'
},
styleGuide: 'styleguide',
twigPages: {
src: 'src/templates/' ,
componentsSrc: 'src/templates/01-components/' ,
componentBlocksSrc: 'src/templates/02-component-blocks/' ,
pagesSrc: 'src/templates/03-pages/' ,
destination: 'assets/pages/',
componentsDestination:'assets/pages/01-components',
componentBlocksDestination:'assets/pages/02-component-blocks',
pagesDestination:'assets/pages/03-pages',
componentTemplateSrc: 'src/templates/component-template.twig',
componentBlockTemplateSrc: 'src/templates/component-block-template.twig'
},
svg : {
source: 'src/media/svgs',
destination: 'assets/svg',
prefix: {
dev: '',
pro: '/svg/sprite'
}
}
};```
## Default options
```javascript
var options = {
drupalLibraries: {
destination:'./generated.libraries.yml'
},
// ----- Browsersync ----- //
browserSync: {
server: {baseDir: ['assets']},
startPath: "/pages",
port: 3005,
online: false,open: true,
logConnections: true,
},// ----- CSS ----- //
css: {
files: path.join(paths.styles.destination, '**/*.css'),
file: path.join(paths.styles.destination, '/styles.css'),
destination: path.join(paths.styles.destination)
},// ----- Sass ----- //
sass: {
files: path.join(paths.styles.source, '/**/*.scss'),
file: path.join(paths.styles.source, 'styles.scss'),
destination: path.join(paths.styles.destination),
AUTOPREFIXER_BROWSERS: [
'ie >= 10',
'ie_mob >= 10',
'ff >= 30',
'chrome >= 34',
'safari >= 9',
'opera >= 23',
'ios >= 8',
'android >= 4.4',
'bb >= 10'
]
},// ----- JS ----- //
js: {
files: path.join(paths.scripts.source, '**/*.js'),
compiledFiles: path.join(paths.scripts.destination, '**/*.js'),
vendorFiles: paths.scriptsVendorFiles,
destination: path.join(paths.scripts.destination),
vendorDestination: path.join(paths.scripts.destination,'vendors')
},// ----- eslint ----- //
jsLinting: {
files: {
theme: [
paths.scripts.source + '**/*.js',
'!' + paths.scripts.source + '**/*.min.js'
],
gulp: [
'gulpfile.js',
'gulp-tasks/**/*'
]
}},
// ----- Fonts ----- //
fonts: {
files: paths.fonts.source + '**/*.{ttf,woff,otf,eot,svg,woff2}',
destination: paths.fonts.destination
},
// ----- Images ----- //
images: {
files: paths.images.source + '**/*.{png,gif,jpg,svg,xml,webmanifest}',
destination: paths.images.destination
},
// ----- TWIG pages ---- //
twigPages: {
baseSrc: path.join(paths.twigPages.src),
src: path.join(paths.twigPages.src, '/*.twig'),
componentsSrc: path.join(paths.twigPages.componentsSrc, '/**/*.twig'),
componentBlocksSrc: path.join(paths.twigPages.componentBlocksSrc, '/**/*.twig'),
pagesSrc: path.join(paths.twigPages.pagesSrc, '/**/*.twig'),
allSrc: path.join(paths.twigPages.src, '/**/*'), //Needed for watch task
destination: path.join(paths.twigPages.destination),
componentsDestination: path.join(paths.twigPages.componentsDestination),
componentBlocksDestination: path.join(paths.twigPages.componentBlocksDestination),
pagesDestination: path.join(paths.twigPages.pagesDestination),
componentTemplateSrc: path.join(paths.twigPages.componentTemplateSrc),
componentBlockTemplateSrc: path.join(paths.twigPages.componentBlockTemplateSrc)
},svg: {
files: path.join(paths.svg.source, '**/*.svg'),
destination: path.join(paths.svg.destination),
mode: {
symbol: { // symbol mode to build the SVG
render: {
css: true, // CSS output option for icon sizing
scss: true // SCSS output option for icon sizing
},
dest: 'sprite', // destination folder
prefix: '.svg--%s', // BEM-style prefix if styles rendered
sprite: 'sprite.svg', //generated sprite name
example: true // Build a sample page, please!
}
},
prefix: paths.svg.prefix
},}
```
## Example `gulpfile.js` for a `Drupal theme````javascript
var customPaths = {};
var customOptions = {};var gulp = require('gulp');
var fs = require('fs');if (fs.existsSync('./gulpfile.custom.paths.js')) {
customPaths = require('./gulpfile.custom.paths.js');
}
if (fs.existsSync('./gulpfile.custom.options.js')) {
customOptions = require('./gulpfile.custom.options.js');
}require('gulp-tasks-soda')(gulp,customPaths,customOptions);
```