jantimon/html-webpack-plugin

[DEP_WEBPACK_MAIN_TEMPLATE_ASSET_PATH] DeprecationWarning: MainTemplate.hooks.assetPath is deprecated (use Compilation.hooks.assetPath instead)

juztinlazaro opened this issue · 10 comments

Current behaviour 💣

image

just migrated webpack v4 to v5

webpack.prod.config

const webpack = require('webpack');
const { merge } = require('webpack-merge');
const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const GitRevisionPlugin = require('git-revision-webpack-plugin');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
/* this is not working atm - it stripe required css out */
// const OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin');
// const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin;
const ScriptExtHtmlWebpackPlugin = require('script-ext-html-webpack-plugin');
const CompressionPlugin = require('compression-webpack-plugin');
const widgetEntryPoints = require('./widget-entry-points');
const TerserPlugin = require('terser-webpack-plugin');

const gitRevisionPlugin = new GitRevisionPlugin();

const widgetSourcePath = path.resolve(__dirname, '../client/widgets');
const widgetOutputPath = './widgets';
const widgetEntries = widgetEntryPoints(widgetSourcePath, widgetOutputPath);
const widgetTemplates = {
  calculator: 'widget-calculator-index.prod.ejs',
  messenger: 'widget-messenger-index.prod.ejs',
};

const defaultRules = require('./rules');

const rootPath = path.join(__dirname, '../client');
const loggerEnvVars =
  process.env.LOGGER_ENV !== 'DEV'
    ? {
        LOGGER_GROUP: JSON.stringify(process.env.LOGGER_GROUP),
        LOGGER_REGION: JSON.stringify(process.env.LOGGER_REGION),
        LOGGER_ACCESS_KEY_ID: JSON.stringify(
          process.env[`LOGGER_ACCESS_KEY_ID_${process.env.LOGGER_ENV}`],
        ),
        LOGGER_SECRET_ACCESS_KEY: JSON.stringify(
          process.env[`LOGGER_SECRET_ACCESS_KEY_${process.env.LOGGER_ENV}`],
        ),
      }
    : {};
const GLOBALS = {
  'process.env': {
    NODE_ENV: JSON.stringify('production'),
    RELEASE: JSON.stringify(gitRevisionPlugin.commithash()),
    ...loggerEnvVars,
  },
  __DEV__: false,
};
const config = {
  stats: 'errors-only',
  context: rootPath,
  devtool: 'source-map',
  entry: Object.assign(
    {
      bundle: ['./index.js'],
      goal: ['./goal-index.js'],
    },
    widgetEntries,
  ),
  output: {
    path: path.join(__dirname, '../dist/client'),
    publicPath: '/',
    filename: '[name].[contenthash].js',
  },
  module: {
    rules: [
      defaultRules.html,
      {
        test: /\.css$/,
        exclude: defaultRules.css.exclude,
        use: [MiniCssExtractPlugin.loader, ...defaultRules.css.use.slice(1)],
      },
      defaultRules.banner,
      defaultRules.js,
      defaultRules.svg,
      defaultRules.svgLogo,
      defaultRules.file,
      defaultRules.cssTemplate,
      defaultRules.cssSimple,
    ],
  },
  resolve: {
    alias: {
      shared: path.resolve(__dirname, '../shared'),
    },
    extensions: ['.js'],
    modules: [rootPath, 'node_modules'],
    fallback: { stream: require.resolve('stream-browserify') },
  },
  optimization: {
    minimize: true,
    minimizer: [
      new TerserPlugin({
        parallel: true,
        sourceMap: true,
      }),
    ],
    splitChunks: {
      // CommonsChunkPlugin()
      cacheGroups: {
        common: {
          name: 'common',
          chunks: 'all',
          minChunks: 2,
        },
        vendor: {
          name: 'vendor',
          test: /[/\\]node_modules[/\\]/,
          chunks: 'all',
        },
        styles: {
          name: 'styles',
          test: /\.css$/,
          // enforce: true,
        },
      },
    },
  },
  plugins: [
    new webpack.DefinePlugin(GLOBALS),
    // this is to remove unneeded locales from our build
    new webpack.ContextReplacementPlugin(/moment[/\\]locale$/, /en|id/),
    new MiniCssExtractPlugin({
      filename: '[name].[contenthash].css',
      chunkFilename: '[id].[contenthash].css',
    }),
    new GitRevisionPlugin(),
    new HtmlWebpackPlugin({
      template: 'index.prod.ejs',
      inject: true,
      chunks: ['vendor', 'common', 'styles', 'bundle'],
      tmid: process.env.TAG_MANAGER_ID,
      minify: false,
    }),
    new HtmlWebpackPlugin({
      template: 'goal-index.prod.ejs',
      filename: 'goal-index.html',
      inject: true,
      chunks: ['vendor', 'common', 'styles', 'goal'],
      minify: false,
    }),
    new HtmlWebpackPlugin({
      template: 'apply-index.prod.ejs',
      filename: 'apply-index.html',
      inject: true,
      chunks: ['vendor', 'common', 'styles', 'bundle'],
      minify: false,
    }),
    // generate a new index for each widget
    ...Object.keys(widgetEntries).map((key) => {
      const widgetBundlePath = path.dirname(key).split('/');
      const widgetName = widgetBundlePath[widgetBundlePath.length - 1];
      return new HtmlWebpackPlugin({
        template: widgetTemplates[widgetName] || 'index.prod.ejs',
        filename: path.join(widgetOutputPath, widgetName, 'index.html'),
        inject: true,
        chunks: ['vendor', 'common', 'styles', key],
        minify: false,
      });
    }),
    new ScriptExtHtmlWebpackPlugin({
      defaultAttribute: 'async',
    }),
    new CompressionPlugin({
      filename: '[path].gz[query]',
      algorithm: 'gzip',
      test: /\.(js|css)$/,
      threshold: 10240,
      minRatio: 0.8,
    }),
    // new BundleAnalyzerPlugin({
    //   analyzerMode: 'static',
    //   generateStatsFile: true,
    // }),
  ],
};

module.exports = merge(config, {
  mode: 'production',
});

rules

/* eslint-disable sonarjs/no-duplicate-string */
const path = require('path');

module.exports = {
  cssSimple: {
    test: /\.css$/,
    include: (modulePath) => {
      return (
        /\.min\.css/.test(modulePath) || /\.nonmodule\.css$/.test(modulePath)
      );
    },
    use: ['style-loader', 'css-loader'],
  },
  css: {
    test: /\.css$/,
    exclude: (modulePath) => {
      return (
        /node_modules\/(?!@bit).*/.test(modulePath) ||
        /\.tpl\./.test(modulePath) ||
        /\.min\.css/.test(modulePath) ||
        /\.nonmodule\.css$/.test(modulePath)
      );
    },
    use: [
      {
        loader: 'style-loader',
        options: {
          attributes: { rel: 'preload' },
        },
      },
      {
        loader: 'css-loader',
        options: {
          modules: true,

          importLoaders: 1,
          localIdentName: '[name]__[local]',
          minimize: { safe: true },
        },
      },
      {
        loader: 'postcss-loader',
        options: {
          config: {
            path: path.resolve(__dirname, './postcss.config.js'),
          },
        },
      },
    ],
  },
  js: {
    test: /\.js$/,
    exclude: /node_modules/,
    use: {
      loader: 'babel-loader',
      options: {
        envName: `client-${process.env.BABEL_ENV || process.env.NODE_ENV}`,
      },
    },
  },
  file: {
    test: /\.(jpe?g|png|gif|eot|ttf|woff2|woff?)$/i,
    exclude: /banners/,
    use: {
      loader: 'file-loader',
      options: {
        name: '[name].[hash].[ext]',
      },
    },
  },
  banner: {
    include: /banners/,
    test: /\.(jpe?g|png)$/i,
    use: {
      loader: 'responsive-loader',
      options: {
        name: '[name].[hash].[ext]',
        size: 768,
        placeholder: false,
      },
    },
  },
  svg: {
    test: /\.svg$/,
    exclude: /(brand-logos|inbetweeners).+\.svg$/,
    use: ['babel-loader', 'svg-inline-loader'],
  },
  svgLogo: {
    test: /(brand-logos|inbetweeners).+\.svg$/,
    use: {
      loader: 'file-loader',
      options: {
        name: '[name].[hash].[ext]',
      },
    },
  },
  html: {
    test: /\.html$/,
    use: {
      loader: 'file-loader',
      options: {
        name: '[name].[ext]',
      },
    },
  },
  cssTemplate: {
    test: /\.tpl.css$/,
    use: [
      'raw-loader',
      {
        loader: 'postcss-loader',
        options: {
          config: {
            path: path.resolve(__dirname, './postcss.config.js'),
          },
        },
      },
    ],
  },
};

Environment 🖥

image

image
image
image

image
image

-->

| | | | | `-- is-descriptor@1.0.2 deduped
| | | | +-- isobject@3.0.1 deduped
| | | | +-- mixin-deep@1.3.2
| | | | | +-- for-in@1.0.2
| | | | | `-- is-extendable@1.0.1
| | | | |   `-- is-plain-object@2.0.4 deduped
| | | | `-- pascalcase@0.1.1
| | | +-- debug@2.6.9
| | | | `-- ms@2.0.0
| | | +-- define-property@0.2.5
| | | | `-- is-descriptor@0.1.6
| | | |   +-- is-accessor-descriptor@0.1.6
| | | |   | `-- kind-of@3.2.2
| | | |   |   `-- is-buffer@1.1.6 deduped
| | | |   +-- is-data-descriptor@0.1.4
| | | |   | `-- kind-of@3.2.2
| | | |   |   `-- is-buffer@1.1.6 deduped
| | | |   `-- kind-of@5.1.0
| | | +-- extend-shallow@2.0.1
| | | | `-- is-extendable@0.1.1
| | | +-- map-cache@0.2.2 deduped
| | | +-- source-map@0.5.7
| | | +-- source-map-resolve@0.5.3
| | | | +-- atob@2.1.2
| | | | +-- decode-uri-component@0.2.2 deduped
| | | | +-- resolve-url@0.2.1
| | | | +-- source-map-url@0.4.1
| | | | `-- urix@0.1.0
| | | `-- use@3.1.1
| | `-- to-regex@3.0.2
| |   +-- define-property@2.0.2
| |   | +-- is-descriptor@1.0.2 deduped
| |   | `-- isobject@3.0.1 deduped
| |   +-- extend-shallow@3.0.2
| |   | +-- assign-symbols@1.0.0 deduped
| |   | `-- is-extendable@1.0.1
| |   |   `-- is-plain-object@2.0.4 deduped
| |   +-- regex-not@1.0.2 deduped
| |   `-- safe-regex@1.1.0 deduped
| +-- ncjsm@4.3.2
| | +-- builtin-modules@3.3.0 deduped
| | +-- deferred@0.7.11
| | | +-- d@1.0.1 deduped
| | | +-- es5-ext@0.10.62 deduped
| | | +-- event-emitter@0.3.5 deduped
| | | +-- next-tick@1.1.0 deduped
| | | `-- timers-ext@0.1.7 deduped
| | +-- es5-ext@0.10.62 deduped
| | +-- es6-set@0.1.6
| | | +-- d@1.0.1 deduped
| | | +-- es5-ext@0.10.62 deduped
| | | +-- es6-iterator@2.0.3 deduped
| | | +-- es6-symbol@3.1.3 deduped
| | | +-- event-emitter@0.3.5 deduped
| | | `-- type@2.7.2 deduped
| | +-- ext@1.7.0
| | | `-- type@2.7.2 deduped
| | +-- find-requires@1.0.0
| | | +-- es5-ext@0.10.62 deduped
| | | `-- esniff@1.1.0
| | |   +-- d@1.0.1 deduped
| | |   `-- es5-ext@0.10.62 deduped
| | +-- fs2@0.3.9
| | | +-- d@1.0.1 deduped
| | | +-- deferred@0.7.11 deduped
| | | +-- es5-ext@0.10.62 deduped
| | | +-- event-emitter@0.3.5 deduped
| | | +-- ignore@5.2.4 deduped
| | | +-- memoizee@0.4.15 deduped
| | | `-- type@2.7.2 deduped
| | `-- type@2.7.2 deduped
| +-- node-fetch@2.6.9
| | `-- whatwg-url@5.0.0
| |   +-- tr46@0.0.3
| |   `-- webidl-conversions@3.0.1
| +-- object-hash@2.1.1 deduped
| +-- p-limit@2.3.0
| | `-- p-try@2.2.0
| +-- promise-queue@2.2.5
| +-- rc@1.2.8
| | +-- deep-extend@0.6.0
| | +-- ini@1.3.8 deduped
| | +-- minimist@1.2.6
| | `-- strip-json-comments@2.0.1 deduped
| +-- replaceall@0.1.6
| +-- semver@6.3.0 deduped
| +-- semver-regex@2.0.0
| +-- stream-promise@3.2.0
| | +-- 2-thenable@1.0.0
| | | +-- d@1.0.1 deduped
| | | `-- es5-ext@0.10.62 deduped
| | +-- es5-ext@0.10.62 deduped
| | `-- is-stream@1.1.0 deduped
| +-- tabtab@3.0.2
| | +-- debug@4.3.4 deduped
| | +-- es6-promisify@6.1.1
| | +-- inquirer@6.5.2 deduped
| | +-- minimist@1.2.6
| | +-- mkdirp@0.5.6
| | | `-- minimist@1.2.6 deduped
| | `-- untildify@3.0.3 deduped
| +-- timers-ext@0.1.7
| | +-- es5-ext@0.10.62 deduped
| | `-- next-tick@1.1.0 deduped
| +-- type@2.7.2
| +-- untildify@3.0.3
| +-- update-notifier@2.5.0
| | +-- boxen@1.3.0
| | | +-- ansi-align@2.0.0
| | | | `-- string-width@2.1.1 deduped
| | | +-- camelcase@4.1.0
| | | +-- chalk@2.4.2 deduped
| | | +-- cli-boxes@1.0.0
| | | +-- string-width@2.1.1
| | | | +-- is-fullwidth-code-point@2.0.0 deduped
| | | | `-- strip-ansi@4.0.0
| | | |   `-- ansi-regex@3.0.1
| | | +-- term-size@1.2.0 deduped
| | | `-- widest-line@2.0.1 deduped
| | +-- chalk@2.4.2
| | | +-- ansi-styles@3.2.1
| | | | `-- color-convert@1.9.3 deduped
| | | +-- escape-string-regexp@1.0.5 deduped
| | | `-- supports-color@5.5.0
| | |   `-- has-flag@3.0.0 deduped
| | +-- configstore@3.1.5
| | | +-- dot-prop@4.2.1
| | | | `-- is-obj@1.0.1
| | | +-- graceful-fs@4.2.11 deduped
| | | +-- make-dir@1.3.0
| | | | `-- pify@3.0.0 deduped
| | | +-- unique-string@1.0.0
| | | | `-- crypto-random-string@1.0.0
| | | +-- write-file-atomic@2.4.3 deduped
| | | `-- xdg-basedir@3.0.0 deduped
| | +-- import-lazy@2.1.0
| | +-- is-ci@1.2.1
| | | `-- ci-info@1.6.0
| | +-- is-installed-globally@0.1.0
| | | +-- global-dirs@0.1.1
| | | | `-- ini@1.3.8 deduped
| | | `-- is-path-inside@1.0.1
| | |   `-- path-is-inside@1.0.2
| | +-- is-npm@1.0.0
| | +-- latest-version@3.1.0
| | | `-- package-json@4.0.1
| | |   +-- got@6.7.1
| | |   | +-- create-error-class@3.0.2 deduped
| | |   | +-- duplexer3@0.1.4 deduped
| | |   | +-- get-stream@3.0.0 deduped
| | |   | +-- is-redirect@1.0.0 deduped
| | |   | +-- is-retry-allowed@1.2.0 deduped
| | |   | +-- is-stream@1.1.0 deduped
| | |   | +-- lowercase-keys@1.0.1 deduped
| | |   | +-- safe-buffer@5.2.1 deduped
| | |   | +-- timed-out@4.0.1 deduped
| | |   | +-- unzip-response@2.0.1
| | |   | `-- url-parse-lax@1.0.0 deduped
| | |   +-- registry-auth-token@3.4.0
| | |   | +-- rc@1.2.8 deduped
| | |   | `-- safe-buffer@5.2.1 deduped
| | |   +-- registry-url@3.1.0
| | |   | `-- rc@1.2.8 deduped
| | |   `-- semver@5.7.1 deduped
| | +-- semver-diff@2.1.0
| | | `-- semver@5.7.1
| | `-- xdg-basedir@3.0.0
| +-- uuid@3.4.0
| +-- write-file-atomic@2.4.3
| | +-- graceful-fs@4.2.11 deduped
| | +-- imurmurhash@0.1.4 deduped
| | `-- signal-exit@3.0.3 deduped
| +-- yaml-ast-parser@0.0.43
| `-- yargs-parser@18.1.3
|   +-- camelcase@5.3.1 deduped
|   `-- decamelize@1.2.0 deduped
+-- serverless-domain-manager@4.2.3
| +-- aws-sdk@2.1362.0 deduped
| `-- chalk@2.4.2
|   +-- ansi-styles@3.2.1
|   | `-- color-convert@1.9.3 deduped
|   +-- escape-string-regexp@1.0.5 deduped
|   `-- supports-color@5.5.0
|     `-- has-flag@3.0.0 deduped
+-- serverless-offline@6.9.0
| +-- @hapi/boom@7.4.11
| | `-- @hapi/hoek@8.5.1
| +-- @hapi/h2o2@8.3.2
| | +-- @hapi/boom@7.4.11 deduped
| | +-- @hapi/hoek@8.5.1 deduped
| | +-- @hapi/joi@16.1.8
| | | +-- @hapi/address@2.1.4
| | | +-- @hapi/formula@1.2.0
| | | +-- @hapi/hoek@8.5.1 deduped
| | | +-- @hapi/pinpoint@1.0.2
| | | `-- @hapi/topo@3.1.6 deduped
| | `-- @hapi/wreck@15.1.0
| |   +-- @hapi/boom@7.4.11 deduped
| |   +-- @hapi/bourne@1.3.2
| |   `-- @hapi/hoek@8.5.1 deduped
| +-- @hapi/hapi@18.4.1
| | +-- @hapi/accept@3.2.4
| | | +-- @hapi/boom@7.4.11 deduped
| | | `-- @hapi/hoek@8.5.1 deduped
| | +-- @hapi/ammo@3.1.2
| | | `-- @hapi/hoek@8.5.1 deduped
| | +-- @hapi/boom@7.4.11 deduped
| | +-- @hapi/bounce@1.3.2
| | | +-- @hapi/boom@7.4.11 deduped
| | | `-- @hapi/hoek@8.5.1 deduped
| | +-- @hapi/call@5.1.3
| | | +-- @hapi/boom@7.4.11 deduped
| | | `-- @hapi/hoek@8.5.1 deduped
| | +-- @hapi/catbox@10.2.3
| | | +-- @hapi/boom@7.4.11 deduped
| | | +-- @hapi/hoek@8.5.1 deduped
| | | +-- @hapi/joi@16.1.8 deduped
| | | `-- @hapi/podium@3.4.3 deduped
| | +-- @hapi/catbox-memory@4.1.1
| | | +-- @hapi/boom@7.4.11 deduped
| | | `-- @hapi/hoek@8.5.1 deduped
| | +-- @hapi/heavy@6.2.2
| | | +-- @hapi/boom@7.4.11 deduped
| | | +-- @hapi/hoek@8.5.1 deduped
| | | `-- @hapi/joi@16.1.8 deduped
| | +-- @hapi/hoek@8.5.1 deduped
| | +-- @hapi/joi@15.1.1
| | | +-- @hapi/address@2.1.4 deduped
| | | +-- @hapi/bourne@1.3.2 deduped
| | | +-- @hapi/hoek@8.5.1 deduped
| | | `-- @hapi/topo@3.1.6 deduped
| | +-- @hapi/mimos@4.1.1
| | | +-- @hapi/hoek@8.5.1 deduped
| | | `-- mime-db@1.52.0 deduped
| | +-- @hapi/podium@3.4.3
| | | +-- @hapi/hoek@8.5.1 deduped
| | | `-- @hapi/joi@16.1.8 deduped
| | +-- @hapi/shot@4.1.2
| | | +-- @hapi/hoek@8.5.1 deduped
| | | `-- @hapi/joi@16.1.8 deduped
| | +-- @hapi/somever@2.1.1
| | | +-- @hapi/bounce@1.3.2 deduped
| | | `-- @hapi/hoek@8.5.1 deduped
| | +-- @hapi/statehood@6.1.2
| | | +-- @hapi/boom@7.4.11 deduped
| | | +-- @hapi/bounce@1.3.2 deduped
| | | +-- @hapi/bourne@1.3.2 deduped
| | | +-- @hapi/cryptiles@4.2.1
| | | | `-- @hapi/boom@7.4.11 deduped
| | | +-- @hapi/hoek@8.5.1 deduped
| | | +-- @hapi/iron@5.1.4
| | | | +-- @hapi/b64@4.2.1
| | | | | `-- @hapi/hoek@8.5.1 deduped
| | | | +-- @hapi/boom@7.4.11 deduped
| | | | +-- @hapi/bourne@1.3.2 deduped
| | | | +-- @hapi/cryptiles@4.2.1 deduped
| | | | `-- @hapi/hoek@8.5.1 deduped
| | | `-- @hapi/joi@16.1.8 deduped
| | +-- @hapi/subtext@6.1.3
| | | +-- @hapi/boom@7.4.11 deduped
| | | +-- @hapi/bourne@1.3.2 deduped
| | | +-- @hapi/content@4.1.1
| | | | `-- @hapi/boom@7.4.11 deduped
| | | +-- @hapi/file@1.0.0
| | | +-- @hapi/hoek@8.5.1 deduped
| | | +-- @hapi/pez@4.1.2
| | | | +-- @hapi/b64@4.2.1 deduped
| | | | +-- @hapi/boom@7.4.11 deduped
| | | | +-- @hapi/content@4.1.1 deduped
| | | | +-- @hapi/hoek@8.5.1 deduped
| | | | `-- @hapi/nigel@3.1.1
| | | |   +-- @hapi/hoek@8.5.1 deduped
| | | |   `-- @hapi/vise@3.1.1
| | | |     `-- @hapi/hoek@8.5.1 deduped
| | | `-- @hapi/wreck@15.1.0 deduped
| | +-- @hapi/teamwork@3.3.1
| | `-- @hapi/topo@3.1.6
| |   `-- @hapi/hoek@8.5.1 deduped
| +-- aws-sdk@2.1362.0 deduped
| +-- boxen@5.1.2
| | +-- ansi-align@3.0.0 deduped
| | +-- camelcase@6.3.0
| | +-- chalk@4.1.1 deduped
| | +-- cli-boxes@2.2.1 deduped
| | +-- string-width@4.2.2 deduped
| | +-- type-fest@0.20.2
| | +-- widest-line@3.1.0
| | | `-- string-width@4.2.2 deduped
| | `-- wrap-ansi@7.0.0
| |   +-- ansi-styles@4.3.0 deduped
| |   +-- string-width@4.2.2 deduped
| |   `-- strip-ansi@6.0.1 deduped
| +-- chalk@4.1.1 deduped
| +-- cuid@2.1.8
| +-- execa@5.1.1
| | +-- cross-spawn@7.0.3 deduped
| | +-- get-stream@6.0.1
| | +-- human-signals@2.1.0
| | +-- is-stream@2.0.1
| | +-- merge-stream@2.0.0
| | +-- npm-run-path@4.0.1
| | | `-- path-key@3.1.1
| | +-- onetime@5.1.2
| | | `-- mimic-fn@2.1.0
| | +-- signal-exit@3.0.3 deduped
| | `-- strip-final-newline@2.0.0
| +-- extend@3.0.2
| +-- fs-extra@9.1.0
| | +-- at-least-node@1.0.0 deduped
| | +-- graceful-fs@4.2.11 deduped
| | +-- jsonfile@6.1.0
| | | +-- graceful-fs@4.2.11 deduped
| | | `-- universalify@2.0.0 deduped
| | `-- universalify@2.0.0
| +-- java-invoke-local@0.0.6
| +-- js-string-escape@1.0.1
| +-- jsonpath-plus@5.1.0
| +-- jsonschema@1.4.1
| +-- jsonwebtoken@8.5.1
| | +-- jws@3.2.2
| | | +-- jwa@1.4.1
| | | | +-- buffer-equal-constant-time@1.0.1
| | | | +-- ecdsa-sig-formatter@1.0.11
| | | | | `-- safe-buffer@5.2.1 deduped
| | | | `-- safe-buffer@5.2.1 deduped
| | | `-- safe-buffer@5.2.1 deduped
| | +-- lodash.includes@4.3.0
| | +-- lodash.isboolean@3.0.3
| | +-- lodash.isinteger@4.0.4
| | +-- lodash.isnumber@3.0.3
| | +-- lodash.isplainobject@4.0.6 deduped
| | +-- lodash.isstring@4.0.1 deduped
| | +-- lodash.once@4.1.1
| | +-- ms@2.1.1 deduped
| | `-- semver@5.7.1
| +-- jszip@3.10.1
| | +-- lie@3.3.0
| | | `-- immediate@3.0.6
| | +-- pako@1.0.11
| | +-- readable-stream@2.3.7 deduped
| | `-- setimmediate@1.0.5
| +-- luxon@1.28.1
| +-- node-fetch@2.6.9 deduped
| +-- node-schedule@1.3.3
| | +-- cron-parser@2.18.0
| | | +-- is-nan@1.3.2
| | | | +-- call-bind@1.0.2 deduped
| | | | `-- define-properties@1.2.0 deduped
| | | `-- moment-timezone@0.5.43
| | |   `-- moment@2.29.4 deduped
| | +-- long-timeout@0.1.1
| | `-- sorted-array-functions@1.3.0
| +-- object.fromentries@2.0.6 deduped
| +-- p-memoize@4.0.4
| | +-- map-age-cleaner@0.1.3
| | | `-- p-defer@1.0.0
| | +-- mimic-fn@3.1.0
| | `-- p-settle@4.1.1
| |   +-- p-limit@2.3.0 deduped
| |   `-- p-reflect@2.1.0
| +-- p-queue@6.6.2
| | +-- eventemitter3@4.0.7
| | `-- p-timeout@3.2.0
| |   `-- p-finally@1.0.0
| +-- p-retry@4.6.2
| | +-- @types/retry@0.12.0
| | `-- retry@0.13.1
| +-- please-upgrade-node@3.2.0 deduped
| +-- portfinder@1.0.32
| | +-- async@2.6.4 deduped
| | +-- debug@3.2.7
| | | `-- ms@2.1.1 deduped
| | `-- mkdirp@0.5.6
| |   `-- minimist@1.2.6
| +-- semver@7.4.0
| | `-- lru-cache@6.0.0
| |   `-- yallist@4.0.0 deduped
| +-- update-notifier@5.1.0
| | +-- boxen@5.1.2 deduped
| | +-- chalk@4.1.1 deduped
| | +-- configstore@5.0.1
| | | +-- dot-prop@5.3.0 deduped
| | | +-- graceful-fs@4.2.11 deduped
| | | +-- make-dir@3.1.0 deduped
| | | +-- unique-string@2.0.0
| | | | `-- crypto-random-string@2.0.0
| | | +-- write-file-atomic@3.0.3
| | | | +-- imurmurhash@0.1.4 deduped
| | | | +-- is-typedarray@1.0.0 deduped
| | | | +-- signal-exit@3.0.3 deduped
| | | | `-- typedarray-to-buffer@3.1.5 deduped
| | | `-- xdg-basedir@4.0.0 deduped
| | +-- has-yarn@2.1.0
| | +-- import-lazy@2.1.0 deduped
| | +-- is-ci@2.0.0 deduped
| | +-- is-installed-globally@0.4.0
| | | +-- global-dirs@3.0.1
| | | | `-- ini@2.0.0
| | | `-- is-path-inside@3.0.3 deduped
| | +-- is-npm@5.0.0
| | +-- is-yarn-global@0.3.0
| | +-- latest-version@5.1.0
| | | `-- package-json@6.5.0 deduped
| | +-- pupa@2.1.1
| | | `-- escape-goat@2.1.1
| | +-- semver@7.4.0 deduped
| | +-- semver-diff@3.1.1
| | | `-- semver@6.3.0 deduped
| | `-- xdg-basedir@4.0.0
| +-- velocityjs@2.0.6
| | `-- debug@4.3.4 deduped
| `-- ws@7.5.9 deduped
+-- serverless-offline-aws-ssm@1.0.0
| `-- js-yaml@3.13.1 deduped
+-- serverless-plugin-aws-alerts@1.6.1
| `-- lodash@4.17.21 deduped
+-- serverless-plugin-inject-dependencies@0.0.5 invalid
| +-- dependency-tree@5.12.0 extraneous
| +-- eslint-config-loanmarket-base@1.0.5 extraneous
| `-- lodash@4.17.21 deduped
+-- serverless-plugin-multi@0.0.10 invalid
| +-- ansi-diff@1.1.1 extraneous
| +-- chalk@2.4.2 extraneous
| +-- get-installed-path@4.0.8 extraneous
| +-- js-yaml@3.13.1
| | +-- argparse@1.0.10
| | | `-- sprintf-js@1.0.3
| | `-- esprima@4.0.1
| `-- lodash@4.17.21 deduped
+-- serverless-plugin-provider-groups@0.0.4
+-- serverless-plugin-warmup@4.9.0
| `-- fs-extra@9.1.0
|   +-- at-least-node@1.0.0 deduped
|   +-- graceful-fs@4.2.11 deduped
|   +-- jsonfile@6.1.0
|   | +-- graceful-fs@4.2.11 deduped
|   | `-- universalify@2.0.0 deduped
|   `-- universalify@2.0.0
+-- sinon@9.2.4
| +-- @sinonjs/commons@1.8.6
| | `-- type-detect@4.0.8
| +-- @sinonjs/fake-timers@6.0.1
| | `-- @sinonjs/commons@1.8.6 deduped
| +-- @sinonjs/samsam@5.3.1
| | +-- @sinonjs/commons@1.8.6 deduped
| | +-- lodash.get@4.4.2 deduped
| | `-- type-detect@4.0.8 deduped
| +-- diff@4.0.2
| +-- nise@4.1.0
| | +-- @sinonjs/commons@1.8.6 deduped
| | +-- @sinonjs/fake-timers@6.0.1 deduped
| | +-- @sinonjs/text-encoding@0.7.1
| | +-- just-extend@4.2.1
| | `-- path-to-regexp@1.8.0 deduped
| `-- supports-color@7.2.0
|   `-- has-flag@4.0.0
+-- source-map-support@0.5.21
| +-- buffer-from@1.1.2
| `-- source-map@0.6.1
+-- stack-generator@1.1.0
| `-- stackframe@1.3.4 deduped
+-- stackframe@1.3.4
+-- stacktrace-gps@2.4.4
| +-- source-map@0.5.6
| `-- stackframe@0.3.1
+-- stream-browserify@3.0.0
| +-- inherits@2.0.4 deduped
| `-- readable-stream@3.6.2
|   +-- inherits@2.0.4 deduped
|   +-- string_decoder@1.3.0
|   | `-- safe-buffer@5.2.1 deduped
|   `-- util-deprecate@1.0.2 deduped
+-- style-loader@1.3.0
| +-- loader-utils@2.0.4
| | +-- big.js@5.2.2 deduped
| | +-- emojis-list@3.0.0 deduped
| | `-- json5@2.2.3
| `-- schema-utils@2.7.1
|   +-- @types/json-schema@7.0.7 deduped
|   +-- ajv@6.12.6 deduped
|   `-- ajv-keywords@3.5.2 deduped
+-- svg-inline-loader@0.8.2
| +-- loader-utils@1.4.2 deduped
| +-- object-assign@4.1.1 deduped
| `-- simple-html-tokenizer@0.1.1
+-- terser-webpack-plugin@4.2.3
| +-- cacache@15.0.6
| | +-- @npmcli/move-file@1.1.2
| | | +-- mkdirp@1.0.4 deduped
| | | `-- rimraf@3.0.2 deduped
| | +-- chownr@2.0.0 deduped
| | +-- fs-minipass@2.1.0 deduped
| | +-- glob@7.2.3 deduped
| | +-- infer-owner@1.0.4
| | +-- lru-cache@6.0.0
| | | `-- yallist@4.0.0 deduped
| | +-- minipass@3.1.3 deduped
| | +-- minipass-collect@1.0.2
| | | `-- minipass@3.1.3 deduped
| | +-- minipass-flush@1.0.5
| | | `-- minipass@3.1.3 deduped
| | +-- minipass-pipeline@1.2.4
| | | `-- minipass@3.1.3 deduped
| | +-- mkdirp@1.0.4 deduped
| | +-- p-map@4.0.0
| | | `-- aggregate-error@3.1.0 deduped
| | +-- promise-inflight@1.0.1
| | +-- rimraf@3.0.2 deduped
| | +-- ssri@8.0.1
| | | `-- minipass@3.1.3 deduped
| | +-- tar@6.1.9
| | | +-- chownr@2.0.0 deduped
| | | +-- fs-minipass@2.1.0 deduped
| | | +-- minipass@3.1.3 deduped
| | | +-- minizlib@2.1.2 deduped
| | | +-- mkdirp@1.0.4 deduped
| | | `-- yallist@4.0.0 deduped
| | `-- unique-filename@1.1.1
| |   `-- unique-slug@2.0.2
| |     `-- imurmurhash@0.1.4 deduped
| +-- find-cache-dir@3.3.1 deduped
| +-- jest-worker@26.6.2
| | +-- @types/node@15.0.1 deduped
| | +-- merge-stream@2.0.0 deduped
| | `-- supports-color@7.2.0 deduped
| +-- p-limit@3.1.0
| | `-- yocto-queue@0.1.0
| +-- schema-utils@3.1.2 deduped
| +-- serialize-javascript@5.0.1
| | `-- randombytes@2.1.0 deduped
| +-- source-map@0.6.1 deduped
| +-- terser@5.16.9
| | +-- @jridgewell/source-map@0.3.3
| | | +-- @jridgewell/gen-mapping@0.3.3
| | | | +-- @jridgewell/set-array@1.1.2
| | | | +-- @jridgewell/sourcemap-codec@1.4.15
| | | | `-- @jridgewell/trace-mapping@0.3.18 deduped
| | | `-- @jridgewell/trace-mapping@0.3.18 deduped
| | +-- acorn@8.8.2 deduped
| | +-- commander@2.20.3
| | `-- source-map-support@0.5.21 deduped
| `-- webpack-sources@1.4.3
|   +-- source-list-map@2.0.1 deduped
|   `-- source-map@0.6.1 deduped
+-- throttle-debounce@2.3.0
+-- typed-css-modules@0.6.8
| +-- @types/css-modules-loader-core@1.1.0
| | `-- postcss@7.0.39 deduped
| +-- camelcase@5.3.1
| +-- chalk@2.4.2
| | +-- ansi-styles@3.2.1
| | | `-- color-convert@1.9.3 deduped
| | +-- escape-string-regexp@1.0.5 deduped
| | `-- supports-color@5.5.0
| |   `-- has-flag@3.0.0 deduped
| +-- chokidar@3.5.3 deduped
| +-- css-modules-loader-core@1.1.0
| | +-- icss-replace-symbols@1.1.0 deduped
| | +-- postcss@6.0.1
| | | +-- chalk@1.1.3
| | | | +-- ansi-styles@2.2.1
| | | | +-- escape-string-regexp@1.0.5 deduped
| | | | +-- has-ansi@2.0.0 deduped
| | | | +-- strip-ansi@3.0.1
| | | | | `-- ansi-regex@2.1.1 deduped
| | | | `-- supports-color@2.0.0
| | | +-- source-map@0.5.7
| | | `-- supports-color@3.2.3
| | |   `-- has-flag@1.0.0
| | +-- postcss-modules-extract-imports@1.1.0
| | | `-- postcss@6.0.1 deduped
| | +-- postcss-modules-local-by-default@1.2.0 deduped
| | +-- postcss-modules-scope@1.1.0 deduped
| | `-- postcss-modules-values@1.3.0 deduped
| +-- glob@7.2.3 deduped
| +-- is-there@4.5.1
| +-- mkdirp@0.5.6
| | `-- minimist@1.2.6
| `-- yargs@15.4.1 deduped
+-- typescript@3.9.9
+-- universal-cookie@4.0.4
| +-- @types/cookie@0.3.3
| `-- cookie@0.4.2 deduped
+-- validator@13.9.0
+-- vivus@0.4.6
+-- UNMET PEER DEPENDENCY webpack@5.81.0
| +-- @types/eslint-scope@3.7.4
| | +-- @types/eslint@8.37.0
| | | +-- @types/estree@1.0.1 deduped
| | | `-- @types/json-schema@7.0.7 deduped
| | `-- @types/estree@1.0.1 deduped
| +-- @types/estree@1.0.1
| +-- @webassemblyjs/ast@1.11.5
| | +-- @webassemblyjs/helper-numbers@1.11.5
| | | +-- @webassemblyjs/floating-point-hex-parser@1.11.5
| | | +-- @webassemblyjs/helper-api-error@1.11.5 deduped
| | | `-- @xtuc/long@4.2.2
| | `-- @webassemblyjs/helper-wasm-bytecode@1.11.5
| +-- @webassemblyjs/wasm-edit@1.11.5
| | +-- @webassemblyjs/ast@1.11.5 deduped
| | +-- @webassemblyjs/helper-buffer@1.11.5
| | +-- @webassemblyjs/helper-wasm-bytecode@1.11.5 deduped
| | +-- @webassemblyjs/helper-wasm-section@1.11.5
| | | +-- @webassemblyjs/ast@1.11.5 deduped
| | | +-- @webassemblyjs/helper-buffer@1.11.5 deduped
| | | +-- @webassemblyjs/helper-wasm-bytecode@1.11.5 deduped
| | | `-- @webassemblyjs/wasm-gen@1.11.5 deduped
| | +-- @webassemblyjs/wasm-gen@1.11.5
| | | +-- @webassemblyjs/ast@1.11.5 deduped
| | | +-- @webassemblyjs/helper-wasm-bytecode@1.11.5 deduped
| | | +-- @webassemblyjs/ieee754@1.11.5 deduped
| | | +-- @webassemblyjs/leb128@1.11.5 deduped
| | | `-- @webassemblyjs/utf8@1.11.5 deduped
| | +-- @webassemblyjs/wasm-opt@1.11.5
| | | +-- @webassemblyjs/ast@1.11.5 deduped
| | | +-- @webassemblyjs/helper-buffer@1.11.5 deduped
| | | +-- @webassemblyjs/wasm-gen@1.11.5 deduped
| | | `-- @webassemblyjs/wasm-parser@1.11.5 deduped
| | +-- @webassemblyjs/wasm-parser@1.11.5 deduped
| | `-- @webassemblyjs/wast-printer@1.11.5
| |   +-- @webassemblyjs/ast@1.11.5 deduped
| |   `-- @xtuc/long@4.2.2 deduped
| +-- @webassemblyjs/wasm-parser@1.11.5
| | +-- @webassemblyjs/ast@1.11.5 deduped
| | +-- @webassemblyjs/helper-api-error@1.11.5
| | +-- @webassemblyjs/helper-wasm-bytecode@1.11.5 deduped
| | +-- @webassemblyjs/ieee754@1.11.5
| | | `-- @xtuc/ieee754@1.2.0
| | +-- @webassemblyjs/leb128@1.11.5
| | | `-- @xtuc/long@4.2.2 deduped
| | `-- @webassemblyjs/utf8@1.11.5
| +-- acorn@8.8.2 deduped
| +-- acorn-import-assertions@1.8.0
| +-- browserslist@4.21.5 deduped
| +-- chrome-trace-event@1.0.3
| +-- enhanced-resolve@5.13.0
| | +-- graceful-fs@4.2.11 deduped
| | `-- tapable@2.2.1 deduped
| +-- es-module-lexer@1.2.1
| +-- eslint-scope@5.1.1 deduped
| +-- events@3.3.0
| +-- glob-to-regexp@0.4.1
| +-- graceful-fs@4.2.11 deduped
| +-- json-parse-even-better-errors@2.3.1
| +-- loader-runner@4.3.0
| +-- mime-types@2.1.35
| | `-- mime-db@1.52.0
| +-- neo-async@2.6.2
| +-- schema-utils@3.1.2 deduped
| +-- tapable@2.2.1 deduped
| +-- terser-webpack-plugin@5.3.7
| | +-- @jridgewell/trace-mapping@0.3.18 deduped
| | +-- jest-worker@27.5.1
| | | +-- @types/node@15.0.1 deduped
| | | +-- merge-stream@2.0.0 deduped
| | | `-- supports-color@8.1.1
| | |   `-- has-flag@4.0.0
| | +-- schema-utils@3.1.2 deduped
| | +-- serialize-javascript@6.0.1 deduped
| | `-- terser@5.17.1 deduped
| +-- watchpack@2.4.0
| | +-- glob-to-regexp@0.4.1 deduped
| | `-- graceful-fs@4.2.11 deduped
| `-- webpack-sources@3.2.3
+-- webpack-bundle-analyzer@4.8.0
| +-- @discoveryjs/json-ext@0.5.7
| +-- acorn@8.8.2 deduped
| +-- acorn-walk@8.2.0
| +-- chalk@4.1.1 deduped
| +-- commander@7.2.0
| +-- gzip-size@6.0.0
| | `-- duplexer@0.1.2
| +-- lodash@4.17.21 deduped
| +-- opener@1.5.2
| +-- sirv@1.0.19
| | +-- @polka/url@1.0.0-next.21
| | +-- mrmime@1.0.1
| | `-- totalist@1.1.0
| `-- ws@7.5.9 deduped
+-- webpack-cli@5.0.2
| +-- @discoveryjs/json-ext@0.5.7 deduped
| +-- @webpack-cli/configtest@2.0.1
| +-- @webpack-cli/info@2.0.1
| +-- @webpack-cli/serve@2.0.2
| +-- colorette@2.0.20
| +-- commander@10.0.1
| +-- cross-spawn@7.0.3 deduped
| +-- envinfo@7.8.1 deduped
| +-- fastest-levenshtein@1.0.16
| +-- import-local@3.1.0 deduped
| +-- interpret@3.1.1
| +-- rechoir@0.8.0
| | `-- resolve@1.22.2
| |   +-- is-core-module@2.12.0 deduped
| |   +-- path-parse@1.0.7 deduped
| |   `-- supports-preserve-symlinks-flag@1.0.0 deduped
| `-- webpack-merge@5.8.0 deduped
+-- webpack-dev-server@4.13.3
| +-- @types/bonjour@3.5.10
| | `-- @types/node@15.0.1 deduped
| +-- @types/connect-history-api-fallback@1.5.0
| | +-- @types/express-serve-static-core@4.17.34
| | | +-- @types/node@15.0.1 deduped
| | | +-- @types/qs@6.9.7 deduped
| | | +-- @types/range-parser@1.2.4
| | | `-- @types/send@0.17.1
| | |   +-- @types/mime@1.3.2
| | |   `-- @types/node@15.0.1 deduped
| | `-- @types/node@15.0.1 deduped
| +-- @types/express@4.17.17
| | +-- @types/body-parser@1.19.2
| | | +-- @types/connect@3.4.35
| | | | `-- @types/node@15.0.1 deduped
| | | `-- @types/node@15.0.1 deduped
| | +-- @types/express-serve-static-core@4.17.34 deduped
| | +-- @types/qs@6.9.7
| | `-- @types/serve-static@1.15.1 deduped
| +-- @types/serve-index@1.9.1
| | `-- @types/express@4.17.17 deduped
| +-- @types/serve-static@1.15.1
| | +-- @types/mime@3.0.1
| | `-- @types/node@15.0.1 deduped
| +-- @types/sockjs@0.3.33
| | `-- @types/node@15.0.1 deduped
| +-- @types/ws@8.5.4
| | `-- @types/node@15.0.1 deduped
| +-- ansi-html-community@0.0.8
| +-- bonjour-service@1.1.1
| | +-- array-flatten@2.1.2
| | +-- dns-equal@1.0.0
| | +-- fast-deep-equal@3.1.3 deduped
| | `-- multicast-dns@7.2.5
| |   +-- dns-packet@5.6.0
| |   | `-- @leichtgewicht/ip-codec@2.0.4
| |   `-- thunky@1.1.0
| +-- chokidar@3.5.3 deduped
| +-- colorette@2.0.20 deduped
| +-- compression@1.7.4
| | +-- accepts@1.3.8
| | | +-- mime-types@2.1.35 deduped
| | | `-- negotiator@0.6.3
| | +-- bytes@3.0.0
| | +-- compressible@2.0.18
| | | `-- mime-db@1.52.0 deduped
| | +-- debug@2.6.9
| | | `-- ms@2.0.0
| | +-- on-headers@1.0.2
| | +-- safe-buffer@5.1.2
| | `-- vary@1.1.2 deduped
| +-- connect-history-api-fallback@2.0.0
| +-- default-gateway@6.0.3
| | `-- execa@5.1.1 deduped
| +-- express@4.18.2
| | +-- accepts@1.3.8 deduped
| | +-- array-flatten@1.1.1
| | +-- body-parser@1.20.1
| | | +-- bytes@3.1.2
| | | +-- content-type@1.0.5 deduped
| | | +-- debug@2.6.9
| | | | `-- ms@2.0.0
| | | +-- depd@2.0.0 deduped
| | | +-- destroy@1.2.0
| | | +-- http-errors@2.0.0 deduped
| | | +-- iconv-lite@0.4.24 deduped
| | | +-- on-finished@2.4.1 deduped
| | | +-- qs@6.11.0
| | | | `-- side-channel@1.0.4 deduped
| | | +-- raw-body@2.5.1
| | | | +-- bytes@3.1.2 deduped
| | | | +-- http-errors@2.0.0 deduped
| | | | +-- iconv-lite@0.4.24 deduped
| | | | `-- unpipe@1.0.0 deduped
| | | +-- type-is@1.6.18 deduped
| | | `-- unpipe@1.0.0
| | +-- content-disposition@0.5.4 deduped
| | +-- content-type@1.0.5
| | +-- cookie@0.5.0
| | +-- cookie-signature@1.0.6 deduped
| | +-- debug@2.6.9
| | | `-- ms@2.0.0
| | +-- depd@2.0.0
| | +-- encodeurl@1.0.2
| | +-- escape-html@1.0.3
| | +-- etag@1.8.1
| | +-- finalhandler@1.2.0
| | | +-- debug@2.6.9
| | | | `-- ms@2.0.0
| | | +-- encodeurl@1.0.2 deduped
| | | +-- escape-html@1.0.3 deduped
| | | +-- on-finished@2.4.1 deduped
| | | +-- parseurl@1.3.3 deduped
| | | +-- statuses@2.0.1 deduped
| | | `-- unpipe@1.0.0 deduped
| | +-- fresh@0.5.2
| | +-- http-errors@2.0.0
| | | +-- depd@2.0.0 deduped
| | | +-- inherits@2.0.4 deduped
| | | +-- setprototypeof@1.2.0 deduped
| | | +-- statuses@2.0.1 deduped
| | | `-- toidentifier@1.0.1
| | +-- merge-descriptors@1.0.1
| | +-- methods@1.1.2
| | +-- on-finished@2.4.1
| | | `-- ee-first@1.1.1
| | +-- parseurl@1.3.3
| | +-- path-to-regexp@0.1.7
| | +-- proxy-addr@2.0.7
| | | +-- forwarded@0.2.0
| | | `-- ipaddr.js@1.9.1
| | +-- qs@6.11.0
| | | `-- side-channel@1.0.4 deduped
| | +-- range-parser@1.2.1
| | +-- safe-buffer@5.2.1 deduped
| | +-- send@0.18.0
| | | +-- debug@2.6.9
| | | | `-- ms@2.0.0
| | | +-- depd@2.0.0 deduped
| | | +-- destroy@1.2.0 deduped
| | | +-- encodeurl@1.0.2 deduped
| | | +-- escape-html@1.0.3 deduped
| | | +-- etag@1.8.1 deduped
| | | +-- fresh@0.5.2 deduped
| | | +-- http-errors@2.0.0 deduped
| | | +-- mime@1.6.0
| | | +-- ms@2.1.3
| | | +-- on-finished@2.4.1 deduped
| | | +-- range-parser@1.2.1 deduped
| | | `-- statuses@2.0.1 deduped
| | +-- serve-static@1.15.0
| | | +-- encodeurl@1.0.2 deduped
| | | +-- escape-html@1.0.3 deduped
| | | +-- parseurl@1.3.3 deduped
| | | `-- send@0.18.0 deduped
| | +-- setprototypeof@1.2.0
| | +-- statuses@2.0.1
| | +-- type-is@1.6.18
| | | +-- media-typer@0.3.0
| | | `-- mime-types@2.1.35 deduped
| | +-- utils-merge@1.0.1
| | `-- vary@1.1.2 deduped
| +-- graceful-fs@4.2.11 deduped
| +-- html-entities@2.3.3
| +-- http-proxy-middleware@2.0.6
| | +-- @types/http-proxy@1.17.11
| | | `-- @types/node@15.0.1 deduped
| | +-- http-proxy@1.18.1
| | | +-- eventemitter3@4.0.7 deduped
| | | +-- follow-redirects@1.14.8 deduped
| | | `-- requires-port@1.0.0 deduped
| | +-- is-glob@4.0.1 deduped
| | +-- is-plain-obj@3.0.0
| | `-- micromatch@4.0.5 deduped
| +-- ipaddr.js@2.0.1
| +-- launch-editor@2.6.0
| | +-- picocolors@1.0.0 deduped
| | `-- shell-quote@1.8.1
| +-- open@8.4.2
| | +-- define-lazy-prop@2.0.0
| | +-- is-docker@2.2.1 deduped
| | `-- is-wsl@2.2.0 deduped
| +-- p-retry@4.6.2 deduped
| +-- rimraf@3.0.2 deduped
| +-- schema-utils@4.0.1
| | +-- @types/json-schema@7.0.11
| | +-- ajv@8.12.0
| | | +-- fast-deep-equal@3.1.3 deduped
| | | +-- json-schema-traverse@1.0.0
| | | +-- require-from-string@2.0.2 deduped
| | | `-- uri-js@4.4.1 deduped
| | +-- ajv-formats@2.1.1
| | | `-- ajv@8.12.0 deduped
| | `-- ajv-keywords@5.1.0
| |   `-- fast-deep-equal@3.1.3 deduped
| +-- selfsigned@2.1.1
| | `-- node-forge@1.3.0
| +-- serve-index@1.9.1
| | +-- accepts@1.3.8 deduped
| | +-- batch@0.6.1
| | +-- debug@2.6.9
| | | `-- ms@2.0.0
| | +-- escape-html@1.0.3 deduped
| | +-- http-errors@1.6.3
| | | +-- depd@1.1.2
| | | +-- inherits@2.0.3
| | | +-- setprototypeof@1.1.0
| | | `-- statuses@1.5.0
| | +-- mime-types@2.1.35 deduped
| | `-- parseurl@1.3.3 deduped
| +-- sockjs@0.3.24
| | +-- faye-websocket@0.11.4
| | | `-- websocket-driver@0.7.4 deduped
| | +-- uuid@8.3.2
| | `-- websocket-driver@0.7.4
| |   +-- http-parser-js@0.5.8
| |   +-- safe-buffer@5.2.1 deduped
| |   `-- websocket-extensions@0.1.4
| +-- spdy@4.0.2
| | +-- debug@4.3.4 deduped
| | +-- handle-thing@2.0.1
| | +-- http-deceiver@1.2.7
| | +-- select-hose@2.0.0
| | `-- spdy-transport@3.0.0
| |   +-- debug@4.3.4 deduped
| |   +-- detect-node@2.1.0
| |   +-- hpack.js@2.1.6
| |   | +-- inherits@2.0.4 deduped
| |   | +-- obuf@1.1.2 deduped
| |   | +-- readable-stream@2.3.7 deduped
| |   | `-- wbuf@1.7.3 deduped
| |   +-- obuf@1.1.2
| |   +-- readable-stream@3.6.2
| |   | +-- inherits@2.0.4 deduped
| |   | +-- string_decoder@1.3.0
| |   | | `-- safe-buffer@5.2.1 deduped
| |   | `-- util-deprecate@1.0.2 deduped
| |   `-- wbuf@1.7.3
| |     `-- minimalistic-assert@1.0.1
| +-- webpack-dev-middleware@5.3.3
| | +-- colorette@2.0.20 deduped
| | +-- memfs@3.5.1
| | | `-- fs-monkey@1.0.3
| | +-- mime-types@2.1.35 deduped
| | +-- range-parser@1.2.1 deduped
| | `-- schema-utils@4.0.1
| |   +-- @types/json-schema@7.0.11
| |   +-- ajv@8.12.0
| |   | +-- fast-deep-equal@3.1.3 deduped
| |   | +-- json-schema-traverse@1.0.0
| |   | +-- require-from-string@2.0.2 deduped
| |   | `-- uri-js@4.4.1 deduped
| |   +-- ajv-formats@2.1.1
| |   | `-- ajv@8.12.0 deduped
| |   `-- ajv-keywords@5.1.0
| |     `-- fast-deep-equal@3.1.3 deduped
| `-- ws@8.13.0
+-- webpack-merge@5.8.0
| +-- clone-deep@4.0.1 deduped
| `-- wildcard@2.0.1
+-- webpack-node-externals@3.0.0
+-- winston@3.3.3
| +-- @dabh/diagnostics@2.0.3
| | +-- colorspace@1.1.2
| | | +-- color@3.0.0
| | | | +-- color-convert@1.9.3 deduped
| | | | `-- color-string@1.5.5
| | | |   +-- color-name@1.1.4 deduped
| | | |   `-- simple-swizzle@0.2.2 deduped
| | | `-- text-hex@1.0.0
| | +-- enabled@2.0.0
| | `-- kuler@2.0.0
| +-- async@3.2.4
| +-- is-stream@2.0.1
| +-- logform@2.2.0
| | +-- colors@1.4.0
| | +-- fast-safe-stringify@2.1.1
| | +-- fecha@4.2.3
| | +-- ms@2.1.1 deduped
| | `-- triple-beam@1.3.0 deduped
| +-- one-time@1.0.0
| | `-- fn.name@1.1.0
| +-- readable-stream@3.6.2
| | +-- inherits@2.0.4 deduped
| | +-- string_decoder@1.3.0
| | | `-- safe-buffer@5.2.1 deduped
| | `-- util-deprecate@1.0.2 deduped
| +-- stack-trace@0.0.10
| +-- triple-beam@1.3.0
| `-- winston-transport@4.4.0
|   +-- readable-stream@2.3.7 deduped
|   `-- triple-beam@1.3.0 deduped
`-- yakbak@5.0.1
  +-- bluebird@3.7.2 deduped
  +-- debug@4.3.4 deduped
  +-- ejs@3.1.7 deduped
  +-- incoming-message-hash@4.1.0
  `-- mkdirp@1.0.4 deduped

It means you still have plugin for webpack v4, run npm ls webpack

Hi @alexander-akait i updated my details, im using yarn so i run yarn list webpack thank you

@juztinlazaro Please use npm ls, I need to see your dependecies tree, not versions

Hi @alexander-akait my bad, is this helps?

image

Please use npm, not yarn, I need to look on every version on wepback, for OptimizeCSSAssetsPlugin you can migrate on https://github.com/webpack-contrib/css-minimizer-webpack-plugin

@alexander-akait just update my details, okay will migrate OptimizeCSSAssetsPlugin

seems like, the issue is commin to this

image

I think you don't need this plugin, you can set attributes using this plugin

@alexander-akait upon removing CompressionPlugin, it successfully build, but the DEP_WEBPACK_MAIN_TEMPLATE_ASSET_PATH, not remove

image

image

Check your version again and please update to the latest

Sorry we don't use MainTemplate.hooks.assetPath in html-webpack-plugin, maybe it is from another plugin, please use --trace-deprecation for Node.js process to get a stack where it happended and report it to the found plugin.

Anyway if you provide reproducible test repo I will help you and point there is a problem, thank you and feel free to feedback