【发布时间】:2017-05-20 05:22:57
【问题描述】:
我想先说这个问题,我很难理解这个问题到底发生了什么,如果它不符合 Stackoverflow 的问答标准,我深表歉意。
我正在尝试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'
模块的package.json 或类似的其他地方没有将jQuery 描述为依赖项。我不知道发生了什么。如果有任何用处,这里是似乎在编译包中抛出错误的代码:
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; }()))))
【问题讨论】:
-
看来您对 webpack 如何确定依赖关系的假设不正确...... swiper 源代码引用了 jQuery,它可能是可选的,也可能不是可选的,但 webpack 无法在没有帮助的情况下做出决定。跨度>
标签: javascript node.js npm webpack