util.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. const path = require('path');
  2. const MiniCssExtractPlugin = require('mini-css-extract-plugin');
  3. process.env.NODE_ENV = process.env.NODE_ENV || 'development';
  4. const isDev = process.env.NODE_ENV === 'development';
  5. const isProd = process.env.NODE_ENV === 'production';
  6. const isTest = process.env.NODE_ENV === 'test';
  7. const DIST = 'dist';
  8. const INIT_FUNC_NAME = 'VMInitInjection';
  9. function styleLoader(options) {
  10. const {
  11. loaders = [],
  12. extract = isProd,
  13. fallback = 'style-loader',
  14. modules = false,
  15. } = options || {};
  16. const cssLoader = {
  17. loader: 'css-loader',
  18. options: {
  19. modules,
  20. importLoaders: 1,
  21. sourceMap: false,
  22. },
  23. };
  24. return [
  25. extract ? MiniCssExtractPlugin.loader : fallback,
  26. cssLoader,
  27. ...loaders,
  28. ];
  29. }
  30. function styleRule(options, rule) {
  31. return {
  32. test: /\.css$/,
  33. use: styleLoader(options),
  34. ...rule,
  35. };
  36. }
  37. function resolve(dir) {
  38. return path.join(__dirname, '..', dir);
  39. }
  40. exports.DIST = DIST;
  41. exports.INIT_FUNC_NAME = INIT_FUNC_NAME;
  42. exports.isDev = isDev;
  43. exports.isProd = isProd;
  44. exports.isTest = isTest;
  45. exports.styleLoader = styleLoader;
  46. exports.styleRule = styleRule;
  47. exports.resolve = resolve;