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 (将#修改为@)