0
我剛剛開始在尋找Webpack作爲未來jQuery插件的模塊加載器,但是我試圖在單獨的文件中分離單獨的原型函數時遇到了問題。 Webpack似乎將原型函數導入到單獨的IFFE中,這反過來又給我一個控制檯錯誤。WEBPACK - 我如何要求原型功能?
有什麼基本的我做錯了嗎?
示例代碼:(之前運行的WebPack)
app.js
function() {
var Cars = function(color, doors, year, make) {
this.color = color;
this.doors = doors;
this.year = year;
this.make = make;
}
require('./imports/module1.js');
var Audi = new Cars("red", 5, 2001, "Audi");
Audi.listing();
})();
module1.js
// Module 1
console.log("Module 1");
Cars.prototype.listing = function() {
console.log(this.year + ", " + this.color + ", " + this.make + ", with " + this.doors + " doors");
}
的WebPack SNIPPIT
/******/ ([
/* 0 */
/***/ (function(module, exports) {
// Module 1
console.log("Module 1");
Cars.prototype.listing = function() {
console.log(this.year + ", " + this.color + ", " + this.make + ", with " + this.doors + " doors");
}
/***/ }),
/* 1 */
/***/ (function(module, exports, __webpack_require__) {
(function() {
var Cars = function(color, doors, year, make) {
this.color = color;
this.doors = doors;
this.year = year;
this.make = make;
}
__webpack_require__(0);
var Audi = new Cars("red", 5, 2001, "Audi");
Audi.listing();
})();
/***/ })
/******/ ]);
控制檯錯誤
Uncaught ReferenceError: Cars is not defined
at Object.make.color (module1.js:4)
at __webpack_require__ (bootstrap 91cca6f…:19)
at app.js:12
at Object.<anonymous> (app.js:20)
at __webpack_require__ (bootstrap 91cca6f…:19)
at bootstrap 91cca6f…:65
at bootstrap 91cca6f…:65
感謝這使得更有意義。提到.extend方法時,有兩個問題,您是指jQuery方法,還是webpack擁有自己的擴展方法?你也提到IFFE,我的計劃是使用我的jQuery插件的webpack。目前我使用的jQuery boilert板模式,並依靠IFFE來限制範圍。 –
我的榮幸@ FrederickM.Rogers。對於擴展,我的意思是這一個http://api.jquery.com/jQuery.extend/基本上添加/覆蓋從一個對象到原始屬性。對於IFFE,它在webpack中不需要,基本上IFFE的目標是運行代碼一次,這意味着與需要模塊相同的事情。如果所有的插件都是你的,你可以把它寫成對象的方式,並將它們全部放在一個更清潔的地方。 –
再次感謝你,我會去看看結果如何。 –