如何在webpack上使用blueimp-file-upload?

Lit*_*lee 18 jquery-file-upload webpack

我在我的网站上使用blueimp-file-upload,我正在使用webpack来组织我的js代码.

我从NPM安装了blueimp-file-upload和jquery.ui.widget

npm install --save blueimp-file-upload
npm install --save jquery.ui.widget
Run Code Online (Sandbox Code Playgroud)

我在我的输入文件中要求blueimp-file-upload

require('blueimp-file-upload')
Run Code Online (Sandbox Code Playgroud)

但是当我运行webpack时,我得到了错误:

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 
Run Code Online (Sandbox Code Playgroud)

Mat*_*zol 15

如果你正在使用图像:

Webpack抱怨一些不在blueimp-file-upload包中的模块.这是我的工作方式:

安装缺少的依赖项:

npm i -S blueimp-load-image
npm i -S blueimp-canvas-to-blob
Run Code Online (Sandbox Code Playgroud)

配置Webpack:

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'
   }
};
Run Code Online (Sandbox Code Playgroud)

在您的应用中包含脚本:

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";
Run Code Online (Sandbox Code Playgroud)

  • 非常感谢.这很好用.我需要添加这一行来解决 - >别名:`'load-image-scale':'blueimp-load-image/js/load-image-scale.js',` (3认同)
  • 这个答案对我最有帮助。但是最新版本需要 `load-image-scale` 别名,就像 Yolo 所说的。除此之外,您需要将 `jquery-ui/widget` 别名更改为 `jquery-ui/ui/widget`。 (3认同)
  • 我还必须添加 `'load-image-orientation': 'blueimp-load-image/js/load-image-orientation.js'` (2认同)

Gow*_*rav 14

禁用AMD和CommonJS并使用Browser 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');
Run Code Online (Sandbox Code Playgroud)

这是我用来集成webpack,blueimp-fileupload和angular的配置.或者,您可以在webpack.config.js中配置为正则表达式,以避免重复加载器.

  • 作为补充说明,需要"进口"加载器:`npm i --save-dev imports-loader` (2认同)

小智 6

resolve: {
    extensions: ['', '.js'],
    alias: {
        'jquery-ui/widget': 'blueimp-file-upload/js/vendor/jquery.ui.widget.js'
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 尽管此代码段可以解决问题,但是[包括说明](// meta.stackexchange.com/questions/114762/explaining-entrely-code-based-answers)确实有助于提高您的帖子质量。请记住,您将来会为读者回答这个问题,而这些人可能不知道您提出代码建议的原因。也请尽量不要在代码中加入解释性注释,这会降低代码和解释的可读性! (3认同)
  • 该库的较新版本需要以下行:'jquery-ui / ui / widget':'blueimp-file-upload / js / vendor / jquery.ui.widget.js' (3认同)

g1u*_*1un 5

我有几乎相同的问题,除了错误宣布不是'jquery.ui.widget'而是'jquery/ui/widget'。
对我来说@Gowrav 的回答是错误的。

经过几天的流浪,我以简单的方式解决了它。刚刚做了:

npm install jquery-ui
Run Code Online (Sandbox Code Playgroud)

事实是 jquery.fileupload.js 搜索其供应商: jquery.fileupload.js

但是在 jquery.fileupload.js 尝试导入依赖项的上下文中,当然找不到(已解决)。所以我将它添加到项目中。

PS这只是我对所有工作方式的看法。但这种方式对我有帮助。