Есть ли способ отключить 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.