files - webpack common
¿Hay una manera de deshabilitar AMDPlugin? (3)
El paquete web incluye AMDPlugin de forma predeterminada, por lo que si un módulo comprueba AMD antes de CommonJS, se usará esa definición de módulo.
if (typeof define === ''function'' && define.amd) {
define([], factory)
} else if (typeof exports === ''object'') {
exports.foo = factory();
}
Me gustaría ignorar por completo a AMD. ¿Hay alguna manera de hacerlo en webpack?
Se puede solucionar con imports-loader
Hay muchos módulos que comprueban una función de definición antes de usar CommonJS. Dado que el paquete web es capaz de ambas cosas, en este caso son AMD predeterminadas, lo que puede ser un problema si la implementación es peculiar. Entonces puedes deshabilitar fácilmente la ruta de AMD escribiendo
imports?define=>false
Simplemente hacer
require(''imports?define=>false!myjsfile.js'')
O un mejor enfoque es en webpack.config.js si agrega un cargador
loaders: [ { test: /myjsfile.js/, loader: ''imports?define=>false''} ]
También considere script-loader
, como se menciona al final de la documentación de Shimming :
El cargador de scripts evalúa el código en el contexto global, similar a la inclusión a través de una etiqueta de script. En este modo, todas las bibliotecas normales deberían funcionar. Requerir, módulo, etc. están indefinidos .
También puede agregar lo siguiente a sus reglas para deshabilitar AMD (webpack 2+):
module: {
rules: [
{ parser: { amd: false } }
]
}