微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Webpack 对使用过的模块应用摇树

如何解决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 举报,一经查实,本站将立刻删除。