Что означает "/ *! Статический экспорт не найден * /" в сгенерированном коде webpack 4?

webpack4 часто генерирует модули, начинающиеся с комментария /*! no static exports found */. Это предупреждение и / или что это на самом деле означает?

Поиск всех неиспользуемых файлов в проекте
Поиск всех неиспользуемых файлов в проекте
Количество файлов в проекте растет по мере его развития. И если быть по-настоящему честным, их продвижение происходит в геометрической прогрессии...
Настройка шаблона Metronic с помощью Webpack и Gulp
Настройка шаблона Metronic с помощью Webpack и Gulp
Я пишу эту статью, чтобы поделиться тем, как настроить макет Metronic с помощью Sass, поскольку Metronic предоставляет так много документации, и они...
12
0
10 794
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вот билет на это

https://github.com/webpack/webpack/issues/4877

И соответствующая строчка в коде

https://github.com/webpack/webpack/blob/master/lib/FunctionModuleTemplatePlugin.js#L60

В принципе, не беспокойтесь об этом. Это просто означает, что webpack не обнаружил экспорт, отличный от CommonJS или AMD (динамический). Это совершенно нормально, а не предупреждение.

вторая ссылка GH - 404ing

lfender6445 07.12.2019 04:52

До CommonJS, AMD и node у нас были только теги скриптов в браузере, поэтому вам нужно было сделать что-то вроде этого

<head>
  <script src = "jquery"></script>
  <script src = "jqueryPlugin"></script>
</head>

чтобы jqueryPlugin работал правильно, jquery должен был быть импортирован браузером и запущен до

в этом примере jquery не имеет статического экспорта, это глобальная мутация, как и jqueryPlugin, поэтому, если вы связываете их с webpack, вы получите те же сообщения. экспорта не было, каждый скрипт либо мутировал, либо использовал глобальные переменные (window.$ = function(){} в качестве классического примера), где теги скриптов должны были быть специально упорядочены или объединены для правильной работы.

Спецификация модуля CommonJS - это стандарт, используемый в Node.js для работы с модулями. webpack использует module.export для оптимизации зависимостей и предотвращения повторного объединения фрагментов или сценариев, которые он уже связал, присваивая идентификатор данной зависимости и ее поддереву. Используя такие инструменты, как babel и webpack, вы можете писать современный JS, commonjs или что угодно, безопасно компилировать для браузера и сервера, не беспокоясь о поддержке браузером синтаксиса.

если у вас есть скрипты старой школы, которые не используют синтаксис commonjs, где вы не раскрываете module.export(s), вы должны указать webpack на создание этих скриптов в определенном порядке, иначе вы рискуете, что плагин будет запущен клиентом до того, как будет определен jquery. по большей части браузеры выполняют код сверху вниз. вот когда вы увидите сообщение:

/*! no static exports found */

TL; DR, если вы ничего не экспортируете из необработанных предварительно скомпилированных скриптов, вы получите комментарий в пакете webpack, в котором указано, что

подробнее читайте:

Другие вопросы по теме