jquery-file-upload - ejemplo - jquery file upload timeout
¿Cómo usar blueimp-file-upload con webpack? (9)
Estoy usando blueimp-file-upload en mi sitio web, y estoy usando webpack para organizar mi código js.
Instalé blueimp-file-upload y jquery.ui.widget desde NPM
npm install --save blueimp-file-upload
npm install --save jquery.ui.widget
y requiero cargar blueimp-file en mi archivo de entrada
require(''blueimp-file-upload'')
pero cuando ejecuto webpack, recibo ese error:
ERROR in ./~/blueimp-file-upload/js/jquery.fileupload.js
Module not found: Error: Cannot resolve module ''jquery.ui.widget'' in E:/app-parent/cooka-common-web/src/main/resources/static/node_modules/blueimp-file-upload/js
@ ./~/blueimp-file-upload/js/jquery.fileupload.js 19:8-22:19
Si estás trabajando con imágenes:
Webpack se quejaba de algunos módulos que no estaban en el paquete blueimp-file-upload. Esta es la forma en que conseguí este trabajo:
Instalar dependencias faltantes:
npm i -S blueimp-load-image
npm i -S blueimp-canvas-to-blob
Configurar el paquete web:
config.resolve = {
extensions: ['''', ''.js''],
alias: {
''load-image'': ''blueimp-load-image/js/load-image.js'',
''load-image-meta'': ''blueimp-load-image/js/load-image-meta.js'',
''load-image-exif'': ''blueimp-load-image/js/load-image-exif.js'',
''canvas-to-blob'': ''blueimp-canvas-to-blob/js/canvas-to-blob.js'',
''jquery-ui/widget'': ''blueimp-file-upload/js/vendor/jquery.ui.widget.js''
}
};
Incluye scripts en tu aplicación:
import "blueimp-file-upload/js/vendor/jquery.ui.widget.js";
import "blueimp-file-upload/js/jquery.iframe-transport.js";
import "blueimp-file-upload/js/jquery.fileupload.js";
import "blueimp-file-upload/js/jquery.fileupload-image.js";
Deshabilite AMD y CommonJS y use el navegador Global jQuery.
/* The jQuery UI widget factory, can be omitted if jQuery UI is already included */
require(''imports?define=>false&exports=>false!blueimp-file-upload/js/vendor/jquery.ui.widget.js'');
/* The Iframe Transport is required for browsers without support for XHR file uploads */
require(''imports?define=>false&exports=>false!blueimp-file-upload/js/jquery.iframe-transport.js'');
/* The basic File Upload plugin */
require(''imports?define=>false&exports=>false!blueimp-file-upload/js/jquery.fileupload.js'');
/* The File Upload processing plugin */
require(''imports?define=>false&exports=>false!blueimp-file-upload/js/jquery.fileupload-process.js'');
/* The File Upload validation plugin */
require(''imports?define=>false&exports=>false!blueimp-file-upload/js/jquery.fileupload-validate.js'');
/* The File Upload Angular JS module */
require(''imports?define=>false&exports=>false!blueimp-file-upload/js/jquery.fileupload-angular.js'');
Esta es la configuración que estoy usando para integrar webpack, blueimp-fileupload con angular. Alternativamente, puede configurar en su webpack.config.js como una expresión regular para evitar la repetición de los cargadores.
En el paquete web 3.x, la sintaxis se verá así:
{
test: require.resolve("blueimp-file-upload"),
use: "imports-loader?define=>false"
}
Puede agregar un alias al archivo principal de jquery.ui.widget; desafortunadamente, no especifica uno en su package.json, por lo que el webpack no puede encontrarlo de otra manera.
resolve: {
alias: {
"jquery.ui.widget": "node_modules/jquery.ui.widget/jquery.ui.widget.js"
}
},
Tuve un problema casi idéntico, excepto que el error anunció no ''jquery.ui.widget'' sino ''jquery / ui / widget''.
Para mí la respuesta de @Gowrav fue de manera incorrecta.
Después de días de extravío, lo he resuelto de manera simple. Acaba de hacer:
npm install jquery-ui
El hecho es que jquery.fileupload.js busca su proveedor:
Pero en el contexto donde jquery.fileupload.js está intentando importar dependencia, por supuesto, no se puede encontrar (resolver). Así que lo agrego al proyecto en su lugar.
PD Es solo mi opinión acerca de cómo funciona todo. Pero de esta manera me ha ayudado.
en realidad, puede resolver esto cambiando la configuración de su paquete web, solo agregue la ruta a resolver (por ejemplo, estoy usando Bower)
resolve: {
extensions: [ '''', ''.js'', ''.jsx'' ],
modulesDirectories: [
''node_modules'',
''bower_components'',
''bower_components/blueimp-file-upload/js/vendor''
]
}
primero instala dos plugins
npm i blueimp-file-upload --save
npm i jquery-ui --save
luego requiere en paquete web
require(''blueimp-file-upload/js/jquery.fileupload'')
jquery.fileupload.js
comprobaciones de jquery.fileupload.js
para AMD requieren primero lo que resulta en este error. Puede enseñar a un paquete web que no use el estilo de AMD para este archivo. (Asegúrese de que npm install imports-loader
para que este método funcione):
require(''imports?define=>false!blueimp-file-upload'')
Debe registrar correctamente el módulo como CommonJS y requerirá el jquery.ui.widget
desde la ubicación correcta.
Lea más aquí: http://webpack.github.io/docs/shimming-modules.html#disable-some-module-styles
resolve: {
extensions: ['''', ''.js''],
alias: {
''jquery-ui/widget'': ''blueimp-file-upload/js/vendor/jquery.ui.widget.js''
}
}