首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从webpack导入Blueimp jQuery文件上传

从webpack导入Blueimp jQuery文件上传
EN

Stack Overflow用户
提问于 2017-05-25 18:43:17
回答 1查看 2K关注 0票数 2

我像这样导入文件

代码语言:javascript
复制
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的配置

代码语言:javascript
复制
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'
    }
}

受此启发:如何与webpack一起使用blueimp文件上传?

它正在编译ok,但我在浏览器控制台中出现了错误。

代码语言:javascript
复制
app.js:1391 TypeError: $(...).fileupload is not a function

jQuery是全局定义的,看起来像没有注册fileupload插件。我还是不明白。

EN

回答 1

Stack Overflow用户

发布于 2018-01-13 02:29:14

我也很难让这件事起作用。我放弃了import语句,转而使用了require。一开始,我尝试在require中使用进口-装载机。在我忘记之前,我认为您可以通过在适当的位置将以下内容添加到webpack.config.js中来解决当前的问题:

代码语言:javascript
复制
module.exports.plugins = (module.exports.plugins || []).concat([
    new webpack.ProvidePlugin({
        $: "jquery",
        jQuery: "jquery",
        "window.jQuery": 'jquery'
    })      
]);

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

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

对于imports-loader,问题在于依赖关系的加载顺序,我无法让webpackbabel运行。然后我发现了脚本加载器

安装script-loader

代码语言:javascript
复制
> npm install --save-dev script-loader

那时,我能够删除我的别名解决方案,因为它们不再需要。像个魅力一样工作。希望听到任何关于更好方法的建议。

例子:main.js

代码语言:javascript
复制
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');
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44187714

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档