webpack и terser пропускают исходные имена файлов в минимизированном выводе - PullRequest
3 голосов
/ 17 февраля 2020

Есть ли способ предотвратить распространение исходных имен файлов на выходные данные веб-пакета при использовании Terser для минимизации?

Пример

В выходном файле .js, созданном моим минимизированным рабочим приложением React build, я все еще вижу необработанные имена исходных файлов в выводе.

Пример выдержки:

[...]
({"../js/dashboard/lib/MyApiClient.js":function(e,t,n){"use
strict";n.r(t),n.d(t,"default",function(){return c});var
o=n("../node_modules/axios/index.js"),r=n.n(o),
s=n("../node_modules/@sentry/browser/esm/index.js");
[...]

Здесь вы можете увидеть несколько вещей:

  • В моем проприетарном коде есть какой-то модуль под названием MyApiClient.js
  • Мы используем axios и Sentry

Webpack config

Вот соответствующий часть нашей производственной конфигурации webpack:

  optimization: {
    minimize: true,
    minimizer: [
      new TerserPlugin({
        sourceMap: true,
        extractComments: false,
        terserOptions: {
          output: {
            comments: false,
          },
        },
      }),
    ],
  },

Проблема

Меня беспокоит то, что это утечка информации о внутренней структуре нашего приложения, и у меня нет ' Я не нашел нужного места в стеке (опции веб-пакета? терсер-опции?), чтобы предотвратить его.

Хотя приведенные выше примеры не являются сложными, и, конечно, никакие искажения не делают код непроницаемым для обратного инжиниринга функциональности. , Я не хочу, чтобы оно было слишком просто для других, чтобы понять, как построено приложение и какие функции оно может скрывать.

Спасибо!

Ответы [ 2 ]

3 голосов
/ 10 апреля 2020

Это связано с опцией optimization.namedModules веб-пакета, которая по умолчанию должна быть false , возможно, она включена в вашей конфигурации.

// webpack.config.js
module.exports = {
  //...
  optimization: {
    namedModules: false
  }
};
0 голосов
/ 08 апреля 2020

Также рассмотрите возможность включения sourceMap: false в производство, поскольку эта функция отображает код на имена файлов.

...