Используйте плагин terser webpack вместо uglify при копировании источников через плагин - PullRequest
0 голосов
/ 23 апреля 2019

У меня есть следующие пакеты в моем webpack.config.js:

const CopyWebpackPlugin = require("copy-webpack-plugin");
const TerserPlugin = require("terser-webpack-plugin");
const UglifyJS = require("uglify-es");

И это часть моей конфигурации, которая использует эти пакеты:

  optimization: {
    minimizer: [new TerserPlugin()],
  },
  plugins: {
    new CopyWebpackPlugin([
      {
        from: "./node_modules/whatwg-fetch/dist/fetch.umd.js",
        to: "./js/polyfills/whatwg-fetch.js",
        transform: content => UglifyJS.minify(content.toString()).code,
      },
    ]),
  }

Таким образом, я минимизирую свои общие пакеты с помощью terser и предоставляю минификацию с помощью uglify для источников, которые копируются плагином copy-webpack. Я хочу избавиться от uglify и заменить его на terser, так как они оба используются для минификации. Является ли это возможным? Может ли плагин terser использоваться вне раздела конфигурации optimization? Или, может быть, я могу каким-то образом сказать ему, чтобы минимизировать также мои скопированные вручную источники?

1 Ответ

0 голосов
/ 24 апреля 2019

Решение оказалось простым. Поскольку terser-webpack-plugin включает terser, его можно использовать отдельно.

const CopyWebpackPlugin = require("copy-webpack-plugin");
const Terser = require("terser");

И нет необходимости добавлять terser в список зависимостей! Тогда мы можем использовать его явно, когда захотим:

  plugins: {
    new CopyWebpackPlugin([
      {
        from: "./node_modules/whatwg-fetch/dist/fetch.umd.js",
        to: "./js/polyfills/whatwg-fetch.js",
        transform: content => Terser.minify(content.toString()).code,
      },
    ]),
  }
...