Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var techs = {
- // essential
- fileProvider: require('enb/techs/file-provider'),
- fileMerge: require('enb/techs/file-merge'),
- // optimization
- borschik: require('enb-borschik/techs/borschik'),
- // css
- stylus: require('enb-stylus/techs/stylus'),
- postcss: require('enb-bundle-postcss/techs/enb-bundle-postcss'),
- // js
- browserJs: require('enb-js/techs/browser-js'),
- // bemtree
- // bemtree: require('enb-bemxjst/techs/bemtree'),
- // bemhtml
- bemhtml: require('enb-bemxjst/techs/bemhtml'),
- bemjsonToHtml: require('enb-bemxjst/techs/bemjson-to-html')
- },
- enbBemTechs = require('enb-bem-techs'),
- levels = [
- { path: 'libs/bem-core/common.blocks', check: false },
- { path: 'libs/bem-core/desktop.blocks', check: false },
- { path: 'libs/bem-components/common.blocks', check: false },
- { path: 'libs/bem-components/desktop.blocks', check: false },
- { path: 'libs/bem-components/design/common.blocks', check: false },
- { path: 'libs/bem-components/design/desktop.blocks', check: false },
- { path: 'libs/bem-grid/common.blocks', check: false },
- 'common.blocks',
- 'desktop.blocks',
- 'project.blocks',
- ];
- module.exports = function(config) {
- var isProd = process.env.YENV === 'production';
- config.nodes('*.bundles/*', function(nodeConfig) {
- nodeConfig.addTechs([
- // essential
- [enbBemTechs.levels, { levels: levels }],
- [techs.fileProvider, { target: '?.bemjson.js' }],
- [enbBemTechs.bemjsonToBemdecl],
- [enbBemTechs.deps],
- [enbBemTechs.files],
- // css
- [techs.stylus, {
- url: 'inline', //image to base64
- target: '?.post.css',
- sourceSuffixes: ['styl', 'css', 'post.css'],
- autoprefixer: {
- browsers: ['ie >= 10', 'last 2 versions', 'opera 12.1', '> 2%']
- }
- }],
- [techs.postcss, {
- source: '?.post.css',
- sourcemap: true,
- plugins: [
- require('postcss-mixins'),
- require('postcss-for'),
- require('postcss-simple-vars')({
- variables : {
- maxWidth : '1170px',
- gutter : '16px',
- flex : 'flex'
- }
- }),
- require('lost'),
- require('cssnext')(),
- require('postcss-nested')
- ]
- }],
- // bemtree
- // [techs.bemtree, { sourceSuffixes: ['bemtree', 'bemtree.js'] }],
- // bemhtml
- [techs.bemhtml, { sourceSuffixes: ['bemhtml', 'bemhtml.js'] }],
- // html
- [techs.bemjsonToHtml],
- // client bemhtml
- [enbBemTechs.depsByTechToBemdecl, {
- target: '?.bemhtml.bemdecl.js',
- sourceTech: 'js',
- destTech: 'bemhtml'
- }],
- [enbBemTechs.deps, {
- target: '?.bemhtml.deps.js',
- bemdeclFile: '?.bemhtml.bemdecl.js'
- }],
- [enbBemTechs.files, {
- depsFile: '?.bemhtml.deps.js',
- filesTarget: '?.bemhtml.files',
- dirsTarget: '?.bemhtml.dirs'
- }],
- [techs.bemhtml, {
- target: '?.browser.bemhtml.js',
- filesTarget: '?.bemhtml.files',
- sourceSuffixes: ['bemhtml', 'bemhtml.js']
- }],
- // js
- [techs.browserJs, { includeYM: true }],
- [techs.fileMerge, {
- target: '?.js',
- sources: ['?.browser.js', '?.browser.bemhtml.js']
- }],
- // borschik
- [techs.borschik, { source: '?.js', target: '?.min.js', minify: isProd }],
- [techs.borschik, { source: '?.css', target: '?.min.css', tech: 'cleancss', minify: isProd }]
- ]);
- nodeConfig.addTargets([/* '?.bemtree.js', */ '?.html', '?.min.css', '?.min.js']);
- });
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement