如何解决Webpack 对使用过的模块应用摇树
我正在尝试在对象方法中使用静态模块导入,如下所示:
const HomePage = loadingLib(
{
requireSync() {
const id = this.resolve();
if (typeof __webpack_require__ !== "undefined") {
const module = __webpack_require__(id); // Here
return module;
}
},resolve() {
if (!options.dynamic) {
return require.resolve("./pages/Home");
} else {
return require.resolveWeak("./pages/Home"); // And here
}
},},);
在结果包中,我得到以下代码:
var HomePage = loadingLib({
requireSync: function () {
var id = this.resolve();
if (true) {
var module = __webpack_require__(id);
return module;
}
},resolve: function () {
if (true) {
return /*require.resolve*/(813);
}
else {}
}
});
我的模块 ("./pages/Home"
) 确实包含在包中,但导出已被删除并且模块的名称尚未转换。我是因为摇树而发生的(评论:/* unused harmony export default */
):
{
813:
/***/ ((__unused_webpack_module,__webpack_exports__,__webpack_require__) => {
"use strict";
/* unused harmony export default */
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(294);
/* harmony import */ var _components_Title__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(713);
function Home() {
return (React.createElement("div",null,React.createElement(Title,"\u0413\u043B\u0430\u0432\u043D\u0430\u044F \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430 \u0441\u0430\u0439\u0442\u0430!")));
}
/***/ }),}
如何导入我的模块,以便 webpack 不会减少导出?我可以使用 usedExports: false
使 webpack 包含所有导出,但我认为这个解决方案很差。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。