我正在使用 laravel 开发一个项目,该项目使用(因为它是默认的)webpack 来捆绑其资产。在那里,我确实依赖于一个包,而该包又依赖于 lodash 和 deepdash。
由于 deepdash 是作为 lodash 的 mixin 提供的,因此它的用法(根据文档)如下所示:
// load Lodash if you need it
const _ = require('lodash');
//mixin all the methods into Lodash object
require('deepdash')(_);
Run Code Online (Sandbox Code Playgroud)
或者,如果您想使用 ES6 语法(至少这是我的理解),它将转换为:
import _ from 'lodash';
import deepdash from 'deepdash';
deepdash(_);
Run Code Online (Sandbox Code Playgroud)
完成后,我正在尝试使用 webpack 创建一个包,以便在浏览器中使用。我的问题是,由于某种原因,webpack 似乎用一些“__webpack_require__”魔法功能替换了 lodash 的导入,这导致 lodash 不再是一个函数,浏览器说:

为了更好地演示我的问题,我创建了一个演示 github 存储库,只是尝试 webpack deepdash 和 lodash:ArSn/webpack-deepdash这是浏览器抱怨的行:https : //github.com/ArSn/webpack-deepdash/blob /master/dist/main.js#L17219
我在大量添加 babel 配置方面玩了很多,感觉我最好的镜头是插件babel-plugin-transform-commonjs-es2015-modules。我试过了,结果还是一样。
我觉得要么我对情况有很深的误解,要么我错过了一件小事。然而,对于我的一生,我无法弄清楚它是哪一个,它是什么。
旁注: