config.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. var path = require('path');
  2. var fs = require('fs');
  3. var nodeExternals = require('webpack-node-externals');
  4. var Components = require('../components.json');
  5. var saladConfig = require('../packages/theme-default/salad.config.json');
  6. var utilsList = fs.readdirSync(path.resolve(__dirname, '../src/utils'));
  7. var mixinsList = fs.readdirSync(path.resolve(__dirname, '../src/mixins'));
  8. var externals = {};
  9. Object.keys(Components).forEach(function(key) {
  10. externals[`element-ui/packages/${key}`] = `element-ui/lib/${key}`;
  11. });
  12. externals['element-ui/src/locale'] = 'element-ui/lib/locale';
  13. utilsList.forEach(function(file) {
  14. file = path.basename(file, '.js');
  15. externals[`element-ui/src/utils/${file}`] = `element-ui/lib/utils/${file}`;
  16. });
  17. mixinsList.forEach(function(file) {
  18. file = path.basename(file, '.js');
  19. externals[`element-ui/src/mixins/${file}`] = `element-ui/lib/mixins/${file}`;
  20. });
  21. externals = [Object.assign({
  22. vue: 'vue'
  23. }, externals), nodeExternals()];
  24. exports.externals = externals;
  25. exports.alias = {
  26. main: path.resolve(__dirname, '../src'),
  27. packages: path.resolve(__dirname, '../packages'),
  28. examples: path.resolve(__dirname, '../examples'),
  29. 'element-ui': path.resolve(__dirname, '../')
  30. };
  31. exports.vue = {
  32. root: 'Vue',
  33. commonjs: 'vue',
  34. commonjs2: 'vue',
  35. amd: 'vue'
  36. };
  37. exports.jsexclude = /node_modules|utils\/popper\.js|utils\/date.\js/;
  38. exports.postcss = function(webapck) {
  39. saladConfig.features.partialImport = {
  40. addDependencyTo: webapck
  41. };
  42. return [
  43. require('postcss-salad')(saladConfig)
  44. ];
  45. };