Есть ли способ отключить AMDPlugin?

Webpack включает AMDPlugin по умолчанию, поэтому, если модуль проверяет AMD перед CommonJS, это определение модуля будет использоваться.

if (typeof define === 'function' && define.amd) {
  define([], factory)
} else if (typeof exports === 'object') {
  exports.foo = factory();
}

Я бы вообще проигнорировал AMD. Есть ли способ сделать это в webpack?

Ответы

Ответ 1

Его можно решить с помощью imports-loader

Существует много модулей, которые проверяют функцию определения перед использованием CommonJS. Поскольку webpack способен на оба, они по умолчанию AMD в этом случае, что может быть проблемой, если реализация является изворотливой. Затем вы можете легко отключить путь AMD, написав

imports?define=>false

Просто сделайте

require('imports?define=>false!myjsfile.js')

ИЛИ лучше всего в webpack.config.js добавить загрузчика

loaders: [ { test: /myjsfile.js/, loader: 'imports?define=>false'} ]

Ответ 2

Также рассмотрите script-loader, как упоминалось в конце Документация по сокращению:

script -loader оценивает код в глобальном контексте, аналогично включение через тег script. В этом режиме каждая нормальная библиотека должна Работа. требуют, модуль и т.д. undefined.