webpack.chartcuterie.config.js 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. /*eslint-env node*/
  2. /*eslint import/no-nodejs-modules:0 */
  3. const path = require('path');
  4. const childProcess = require('child_process');
  5. const webpack = require('webpack');
  6. const baseConfig = require('../webpack.config');
  7. const commitHash = childProcess.execSync('git rev-parse HEAD').toString().trim();
  8. const findLoader = loaderName =>
  9. baseConfig.module.rules.find(rule => rule.use.loader === loaderName);
  10. const config = {
  11. mode: process.env.NODE_ENV || 'development',
  12. context: baseConfig.context,
  13. resolve: baseConfig.resolve,
  14. target: 'node',
  15. entry: {
  16. config: 'app/chartcuterieConfig',
  17. },
  18. module: {
  19. rules: [findLoader('babel-loader'), findLoader('po-catalog-loader')],
  20. noParse: baseConfig.module.noParse,
  21. },
  22. plugins: [
  23. new webpack.DefinePlugin({
  24. 'process.env': {COMMIT_SHA: JSON.stringify(commitHash)},
  25. }),
  26. ],
  27. output: {
  28. path: path.join(__dirname, 'chartcuterie'),
  29. libraryTarget: 'commonjs2',
  30. },
  31. devtool: 'none',
  32. optimization: {minimize: false},
  33. };
  34. module.exports = config;