不导入文件时,防止__webpack_exports__更改为导出

时间:2018-02-22 06:43:28

标签: webpack

我要构建要在AWS Lambda上使用的文件,并首先将它们与Webpack捆绑在一起。我注意到有些文件有效(曝光exports.default)而有些文件没有。我发现实际导入其他文件的文件可以工作,而任何独立的文件都不会。这是每个人的肉:

使用import

/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__external__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__external___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__external__);


exports.default = (event, context, callback) => {
    callback(null, event.name);
};


/***/ }),
/* 1 */
/***/ (function(module, exports) {



/***/ })

来源

import External from './external'

exports.default = (event, context, callback) => {
    callback(null, event.name);
};

没有import

/***/ (function(module, exports) {

exports.default = (event, context, callback) => {
    callback(null, event.name);
};


/***/ })

来源

exports.default = (event, context, callback) => {
    callback(null, event.name);
};

您会注意到第二个参数在第一个参数中被命名为__webpack_exports__,在第二个参数中被exports命名,我只能假设它与模块正在尝试的实际exports发生冲突出口。

有没有办法确保我能够真正构建这些捆绑包,无论它们是否是独立文件?

我使用的是webpack版本3.11.0

1 个答案:

答案 0 :(得分:0)

结果证明,将以下内容添加到webpack配置中的输出配置可以解决此问题

library: '',
libraryTarget: 'commonjs'