我想說這個問題的前提是說我很難理解這個問題究竟發生了什麼,我很抱歉如果達不到Stackoverflow的標準。當模塊不需要它時,爲什麼webpack會尋找jQuery?
我正在嘗試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無法在沒有幫助的情況下做出這種決定。 –