Advertisement
Guest User

Untitled

a guest
Feb 7th, 2016
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.17 KB | None | 0 0
  1. var techs = {
  2. // essential
  3. fileProvider: require('enb/techs/file-provider'),
  4. fileMerge: require('enb/techs/file-merge'),
  5.  
  6. // optimization
  7. borschik: require('enb-borschik/techs/borschik'),
  8.  
  9. // css
  10. stylus: require('enb-stylus/techs/stylus'),
  11. postcss: require('enb-bundle-postcss/techs/enb-bundle-postcss'),
  12.  
  13. // js
  14. browserJs: require('enb-js/techs/browser-js'),
  15.  
  16. // bemtree
  17. // bemtree: require('enb-bemxjst/techs/bemtree'),
  18.  
  19. // bemhtml
  20. bemhtml: require('enb-bemxjst/techs/bemhtml'),
  21. bemjsonToHtml: require('enb-bemxjst/techs/bemjson-to-html')
  22. },
  23. enbBemTechs = require('enb-bem-techs'),
  24. levels = [
  25. { path: 'libs/bem-core/common.blocks', check: false },
  26. { path: 'libs/bem-core/desktop.blocks', check: false },
  27. { path: 'libs/bem-components/common.blocks', check: false },
  28. { path: 'libs/bem-components/desktop.blocks', check: false },
  29. { path: 'libs/bem-components/design/common.blocks', check: false },
  30. { path: 'libs/bem-components/design/desktop.blocks', check: false },
  31. { path: 'libs/bem-grid/common.blocks', check: false },
  32. 'common.blocks',
  33. 'desktop.blocks',
  34. 'project.blocks',
  35. ];
  36.  
  37. module.exports = function(config) {
  38. var isProd = process.env.YENV === 'production';
  39.  
  40. config.nodes('*.bundles/*', function(nodeConfig) {
  41. nodeConfig.addTechs([
  42. // essential
  43. [enbBemTechs.levels, { levels: levels }],
  44. [techs.fileProvider, { target: '?.bemjson.js' }],
  45. [enbBemTechs.bemjsonToBemdecl],
  46. [enbBemTechs.deps],
  47. [enbBemTechs.files],
  48.  
  49. // css
  50. [techs.stylus, {
  51. url: 'inline', //image to base64
  52. target: '?.post.css',
  53. sourceSuffixes: ['styl', 'css', 'post.css'],
  54. autoprefixer: {
  55. browsers: ['ie >= 10', 'last 2 versions', 'opera 12.1', '> 2%']
  56. }
  57. }],
  58.  
  59. [techs.postcss, {
  60. source: '?.post.css',
  61. sourcemap: true,
  62. plugins: [
  63. require('postcss-mixins'),
  64. require('postcss-for'),
  65. require('postcss-simple-vars')({
  66. variables : {
  67. maxWidth : '1170px',
  68. gutter : '16px',
  69. flex : 'flex'
  70. }
  71. }),
  72. require('lost'),
  73. require('cssnext')(),
  74. require('postcss-nested')
  75. ]
  76. }],
  77.  
  78. // bemtree
  79. // [techs.bemtree, { sourceSuffixes: ['bemtree', 'bemtree.js'] }],
  80.  
  81. // bemhtml
  82. [techs.bemhtml, { sourceSuffixes: ['bemhtml', 'bemhtml.js'] }],
  83.  
  84. // html
  85. [techs.bemjsonToHtml],
  86.  
  87. // client bemhtml
  88. [enbBemTechs.depsByTechToBemdecl, {
  89. target: '?.bemhtml.bemdecl.js',
  90. sourceTech: 'js',
  91. destTech: 'bemhtml'
  92. }],
  93. [enbBemTechs.deps, {
  94. target: '?.bemhtml.deps.js',
  95. bemdeclFile: '?.bemhtml.bemdecl.js'
  96. }],
  97. [enbBemTechs.files, {
  98. depsFile: '?.bemhtml.deps.js',
  99. filesTarget: '?.bemhtml.files',
  100. dirsTarget: '?.bemhtml.dirs'
  101. }],
  102. [techs.bemhtml, {
  103. target: '?.browser.bemhtml.js',
  104. filesTarget: '?.bemhtml.files',
  105. sourceSuffixes: ['bemhtml', 'bemhtml.js']
  106. }],
  107.  
  108. // js
  109. [techs.browserJs, { includeYM: true }],
  110. [techs.fileMerge, {
  111. target: '?.js',
  112. sources: ['?.browser.js', '?.browser.bemhtml.js']
  113. }],
  114.  
  115. // borschik
  116. [techs.borschik, { source: '?.js', target: '?.min.js', minify: isProd }],
  117. [techs.borschik, { source: '?.css', target: '?.min.css', tech: 'cleancss', minify: isProd }]
  118. ]);
  119.  
  120. nodeConfig.addTargets([/* '?.bemtree.js', */ '?.html', '?.min.css', '?.min.js']);
  121. });
  122. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement