为什么webpack在模块不需要时会查找jQuery?

时间:2017-01-05 15:36:37

标签: javascript node.js npm webpack

我想先说这个问题,说我很难理解这个问题到底发生了什么,如果不符合Stackoverflow的Q& A标准,我会道歉。

我正在尝试import一个NPM模块,然后由Webpack在我们的项目中编译。 This是有问题的模块,this是给我们带来问题的文件。

在该文件的末尾,有导出代码:

if (typeof(module) !== 'undefined')
{
    module.exports = window.Swiper;
}
else if (typeof define === 'function' && define.amd) {
    define([], function () {
        'use strict';
        return window.Swiper;
    });
}

就是这样。在整个文件中有一些对jQuery的引用,但没有任何暗示webpack应该将其作为模块包含在内。搜索"jQuery"并亲自查看。

那么为什么我们这样导入插件时就是这样:

import Swiper from 'swiper'

我们收到以下错误? enter image description here

否模块的package.json中的其他地方或其他类似地将jQuery描述为依赖项。我不知道发生了什么。如果有任何用处,这里的代码似乎会在编译的bundle中引发错误:

else if (typeof define === 'function' && define.amd) {
        define([], function () {
            'use strict';
            return window.Swiper;
        });
    }
    //# sourceMappingURL=maps/swiper.js.map

    /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(!(function webpackMissingModule() { var e = new Error("Cannot find module \"jquery\""); e.code = 'MODULE_NOT_FOUND'; throw e; }())))) 

1 个答案:

答案 0 :(得分:0)

我认为Swiper本身需要jQuery。因为您处于AMD / webpack环境中,Swiper正试图“导入/要求”#34;它和webpack找不到它。