【问题标题】:import Blueimp jQuery File Upload in webpack在 webpack 中导入 Blueimp jQuery 文件上传
【发布时间】:2018-02-08 20:51:32
【问题描述】:

我正在导入这样的文件

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";

并使用

更改了 webpack 配置
resolve: {
    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',
        'load-image-scale': 'blueimp-load-image/js/load-image-scale.js',
        'canvas-to-blob': 'blueimp-canvas-to-blob/js/canvas-to-blob.js',
        'jquery-ui/ui/widget': 'blueimp-file-upload/js/vendor/jquery.ui.widget.js'
    }
}

受此启发:How to use blueimp-file-upload with webpack?

编译正常,但浏览器控制台报错

app.js:1391 TypeError: $(...).fileupload is not a function

jQuery 是全局定义的 看起来文件上传插件没有注册。我不明白。

【问题讨论】:

  • 您是不是偶然解决了这个问题?遇到同样的问题。

标签: jquery webpack blueimp


【解决方案1】:

我也很难让它发挥作用。我放弃了import 语句,改用require。起初,我尝试将imports-loader 与require 一起使用。在我忘记之前,我认为您可以通过在您的 webpack.config.js 的适当位置添加以下内容来解决您的直接问题:

module.exports.plugins = (module.exports.plugins || []).concat([
    new webpack.ProvidePlugin({
        $: "jquery",
        jQuery: "jquery",
        "window.jQuery": 'jquery'
    })      
]);

这给我带来了其他问题,因为我已经在网站上加载了 jQuery 作为静态资产,并且我的模块被注入其中。

但回到我的决心,以避免所有这些痛苦。

对于imports-loader,问题在于依赖项的加载顺序,我无法让webpackbabel 正常运行。然后我发现script-loader

安装script-loader

> npm install --save-dev script-loader

然后我可以删除我的别名解析,因为它们不再需要。像魅力一样工作。很想听听任何关于更好方法的建议。

示例:ma​​in.js

require('script-loader!blueimp-file-upload/js/vendor/jquery.ui.widget.js');
require('script-loader!blueimp-tmpl/js/tmpl.js');
require('script-loader!blueimp-load-image/js/load-image.all.min.js');
require('script-loader!blueimp-canvas-to-blob/js/canvas-to-blob.js');
require('script-loader!blueimp-file-upload/js/jquery.iframe-transport.js');
require('script-loader!blueimp-file-upload/js/jquery.fileupload.js');
require('script-loader!blueimp-file-upload/js/jquery.fileupload-process.js');
require('script-loader!blueimp-file-upload/js/jquery.fileupload-image.js');
require('script-loader!blueimp-file-upload/js/jquery.fileupload-audio.js');
require('script-loader!blueimp-file-upload/js/jquery.fileupload-video.js');
require('script-loader!blueimp-file-upload/js/jquery.fileupload-validate.js');
require('script-loader!blueimp-file-upload/js/jquery.fileupload-ui.js');

【讨论】:

  • 谢谢!这对我有用。只需复制粘贴即可。
  • 我很想知道为什么需要这个,对于一个现代化和维护的图书馆......不过,谢谢你:)
猜你喜欢
  • 1970-01-01
  • 2013-04-29
  • 2015-09-29
  • 2014-06-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多