@Alinaki
Alinaki
15 Feb 2017

Господа, здесь же не я один верстальщик. Давайте я поделюсь своим конфигом брокколи, а вы — конфигом своей системы сборки, а? Мой конфиг в первом комментарии.

#ojxfb 6
Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
15 Feb 2017
'use strict';

const TASKS = {
  build: 'build',
  serve: 'serve'
}

const BUILDING = process.argv.indexOf(TASKS.build) > 0;
const SERVING = process.argv.indexOf(TASKS.serve) > 0;

// Parse --port cli argument
var port = +process.argv.join('').split(/--port=?/)[1] || 4200;

var Funnel = require('broccoli-funnel'); // Filter trees
var MergeTrees = require('broccoli-merge-trees'); // Merge trees
var concat = require('broccoli-concat'); // Concatenate trees
var babel = require('broccoli-babel-transpiler'); // Babel transpiler
var uglify = require('broccoli-uglify-sourcemap'); // UglifyJS
var Sass = require('broccoli-sass'); // SASS compiler
var autoprefixer = require('broccoli-autoprefixer'); // Autoprefixer
var Sync = require('broccoli-browser-sync-bv'); // BrowserSync

var srcDir = 'src';
var sassDir = srcDir + '/scss';
var jsDir = srcDir + '/js';

// Grab vendor scripts
var vendorFiles = [
  'jquery/dist/jquery.js',
  'fullpage.js/dist/jquery.fullpage.js'
];

var vendorJs = new Funnel('node_modules', {
  files: vendorFiles
});

if (BUILDING) {
  vendorJs = uglify(vendorJs);
}

// Transpile the source files
var appJs = babel(jsDir);

// Concatenate and minify sources
var scripts = new MergeTrees([vendorJs, appJs]);
scripts = concat(scripts, {
  inputFiles: ['**/*.js'],
  headerFiles: vendorFiles,
  outputFile: '/static/js/script.js'
});

// Compile SCSS styles
var styles = new Sass([sassDir, 'node_modules'],
  'style.scss',
  'static/css/style.css',
  {outputStyle: 'expanded'}
);

// Autoprefixer
styles = autoprefixer(styles, {
  browsers: ['last 3 versions', 'Firefox ESR']
});

// Grab the HTML
var html = new Funnel(srcDir, {
  // files: ['index.html']
  include: ['*.html']
});

// Grab images
var images = new Funnel(srcDir, {
  srcDir: 'img',
  destDir: '/static/img'
});

// Grab fonts
var fonts = new Funnel(srcDir, {
  srcDir: 'fonts',
  destDir: '/static/fonts'
});

var exports = new MergeTrees([
  html,
  scripts,
  styles,
  images,
  fonts,
]);

if (SERVING) {
  // Set up live reloading via BrowserSync
  var browserSync = new Sync([html, scripts, styles, images, fonts], {
    port: port,
    browserSync: {
      port: 9000,
      open: false,
      ghostMode: false,
      notify: false
    }
  });

  exports = new MergeTrees([
    exports,
    browserSync
  ]);
}

// Grab all our trees and
// export them as a single and final tree
module.exports = exports;
#ojxfb/1
Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
15 Feb 2017

Никто не пользуется системами сборки? :)

#ojxfb/2
Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
15 Feb 2017

Tenno-Seremel, чота похоже на то...

#ojxfb/3 в ответ на /2
Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
15 Feb 2017

Системы сборки юзает только хипстота-ниосиляторы (:

#ojxfb/4
Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
15 Feb 2017

andreymal, я год назад ровно так же считал, ага.

#ojxfb/5 в ответ на /4
Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
15 Feb 2017

andreymal, знаешь, что было моей системой сборки на проекте по продаже билетов в театр? SSI!

#ojxfb/6 в ответ на /4
Вы можете выбрать до 10 файлов общим размером не более 10 МБ.

Добавить пост

Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
Для форматирования текста используется Markdown.