config.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  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('./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 transitionList = fs.readdirSync(path.resolve(__dirname, '../src/transitions'));
  9. var externals = {};
  10. Object.keys(Components).forEach(function(key) {
  11. externals[`element-ui/packages/${key}`] = `element-ui/lib/${key}`;
  12. });
  13. externals['element-ui/src/locale'] = 'element-ui/lib/locale';
  14. utilsList.forEach(function(file) {
  15. file = path.basename(file, '.js');
  16. externals[`element-ui/src/utils/${file}`] = `element-ui/lib/utils/${file}`;
  17. });
  18. mixinsList.forEach(function(file) {
  19. file = path.basename(file, '.js');
  20. externals[`element-ui/src/mixins/${file}`] = `element-ui/lib/mixins/${file}`;
  21. });
  22. transitionList.forEach(function(file) {
  23. file = path.basename(file, '.js');
  24. externals[`element-ui/src/transitions/${file}`] = `element-ui/lib/transitions/${file}`;
  25. });
  26. externals = [Object.assign({
  27. vue: 'vue'
  28. }, externals), nodeExternals()];
  29. exports.externals = externals;
  30. exports.alias = {
  31. main: path.resolve(__dirname, '../src'),
  32. packages: path.resolve(__dirname, '../packages'),
  33. examples: path.resolve(__dirname, '../examples'),
  34. 'element-ui': path.resolve(__dirname, '../')
  35. };
  36. exports.vue = {
  37. root: 'Vue',
  38. commonjs: 'vue',
  39. commonjs2: 'vue',
  40. amd: 'vue'
  41. };
  42. exports.jsexclude = /node_modules|utils\/popper\.js|utils\/date.\js/;
  43. exports.postcss = function(webapck) {
  44. saladConfig.features.partialImport = {
  45. addDependencyTo: webapck
  46. };
  47. return [
  48. require('postcss-salad')(saladConfig)
  49. ];
  50. };