cooking.component.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. var cooking = require('cooking');
  2. var path = require('path');
  3. var Components = require('../components.json');
  4. var entries = {};
  5. Object.keys(Components).forEach(function (key) {
  6. const compo = Components[key];
  7. compo[0] = path.join(process.cwd(), compo[0]);
  8. entries[key] = compo;
  9. });
  10. cooking.set({
  11. entry: entries,
  12. dist: './lib',
  13. clean: false,
  14. template: false,
  15. format: 'cjs',
  16. extractCSS: '[name]/style.css',
  17. extends: ['vue']
  18. });
  19. cooking.add('output.filename', '[name]/index.js');
  20. cooking.add('resolve.alias', {
  21. 'main': path.join(__dirname, '../src'),
  22. 'packages': path.join(__dirname, '../packages'),
  23. 'examples': path.join(__dirname, '../examples')
  24. });
  25. var externals = {};
  26. Object.keys(Components).forEach(function(key) {
  27. externals[`packages/${key}/index.js`] = `element-ui/lib/${key}`;
  28. externals[`packages/${key}/style.css`] = `element-ui/lib/${key}/style.css`;
  29. externals['main/utils/clickoutside'] = 'element-ui/src/utils/clickoutside';
  30. externals['main/utils/popper'] = 'element-ui/src/utils/popper';
  31. externals['main/utils/vue-popper'] = 'element-ui/src/utils/vue-popper';
  32. });
  33. cooking.add('externals', Object.assign({
  34. vue: {
  35. root: 'Vue',
  36. commonjs: 'vue',
  37. commonjs2: 'vue',
  38. amd: 'vue'
  39. }
  40. }, externals));
  41. cooking.add('loader.js.exclude', /node_modules|utils\/popper\.js|util\/fecha.\js/);
  42. module.exports = cooking.resolve();