webpack.chartcuterie.config.js 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  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 =
  8. process.env.SENTRY_BUILD ||
  9. childProcess.execSync('git rev-parse HEAD').toString().trim();
  10. const findLoader = loaderName =>
  11. baseConfig.module.rules.find(rule => rule.use.loader === loaderName);
  12. const config = {
  13. mode: process.env.NODE_ENV || 'development',
  14. context: baseConfig.context,
  15. resolve: baseConfig.resolve,
  16. target: 'node',
  17. entry: {
  18. config: 'app/chartcuterie/config',
  19. },
  20. module: {
  21. rules: [findLoader('babel-loader'), findLoader('po-catalog-loader')],
  22. noParse: baseConfig.module.noParse,
  23. },
  24. plugins: [
  25. new webpack.DefinePlugin({
  26. 'process.env': {COMMIT_SHA: JSON.stringify(commitHash)},
  27. }),
  28. ],
  29. output: {
  30. path: path.join(__dirname, 'chartcuterie'),
  31. libraryTarget: 'commonjs2',
  32. },
  33. optimization: {minimize: false},
  34. };
  35. module.exports = config;