Как удалить комментарии @license из источника во время сборки npm (добавятся вручную)?

Я разрабатываю веб-приложение Vite-React, которое будет использоваться только мной, и вот моя простая команда сборки в package.json: "build": "vite build --emptyOutDir --base=./".

Он использует библиотеки Google Firebase, которые содержат несколько подмодулей, каждый из которых имеет один и тот же комментарий @license, что приводит к 48-кратному повторению одного и того же текста, что составляет 80% моей сборки, поскольку все остальное я все равно заархивировал. Теперь у меня нет проблем с ручным, к счастью, и осторожным добавлением всех уникальных лицензий там, где это необходимо, но сначала я хочу удалить лицензии во время сборки.

Я понимаю, что «@license», вероятно, является маркером, который ищет минификатор, и я поискал, но не нашел способа его отключить. Пожалуйста, порекомендуйте. И спасибо!

🤔 А знаете ли вы, что...
React обладает активным сообществом разработчиков и множеством сторонних библиотек и компонентов.


1
50
2

Ответы:

Вам необходимо настроить terser через vite.config.js:

export default defineConfig({
  build: {
    terserOptions: {
      format: {
        comments: false
      }
    }
  }
});

comments (по умолчанию "some") — по умолчанию сохраняются комментарии в стиле JSDoc, которые содержат «@license», «@copyright», «@preserve» или начинаются с !, передайте true или "all", чтобы сохранить все комментарии, false, чтобы опустить комментарии в вывод, строка регулярного выражения (например, /^!/) или функция.

Документы Терсера


Решено

Теперь минификатор по умолчанию — esbuild (https://vitejs.dev/config/build-options.html#build-minify).

Вот новая конфигурация, которая работает:

export default defineConfig({
  // ...
  build: {
    // ...
  },
  esbuild: { legalComments: 'none' },
})

https://esbuild.github.io/api/#legal-comments