如何从排除的模块(ES6)中导入?

How to import from excluded modules (ES6)?

我有一个浏览器应用程序项目,我想将其分成两部分。 作为一个最小的例子,假设在 ./core 中我有:

// core.js 
import SuperClass from "../core/SuperClass";    
export {SuperClass};

// SuperClass.js
class SuperClass
{
    constructor()
    {
        console.log('SuperClass constructor');
    }
}
export default SuperClass

和目录 ./game 有

//game.js   
import SuperClass from "../core/SuperClass";
console.log(SuperClass);

如果我使用 game.js 作为入口点构建,一切都很好,因为所有依赖项都进入了包。

但是,如果我从 ./core 中排除文件(通过使用 browserify 的排除功能)并与它们单独捆绑并在 game.js 之前加载:

<script src="scripts/core.js"></script>
<script src="scripts/game.js"></script>

我得到:未捕获错误:无法从 game.js

中找到模块“../core/SuperClass”

在运行时向 game.js 提供这些依赖项的方法是什么?我的构建过程使用 gulp 、 babelify 和 browserify.

如果您通过放置在代码之前的 <script> 标签添加代码,您可以假设它已经存在,作为全局 variable/class/library,您不需要导入它,因为它已经存在。这就像使用旧的 JQuery,例如:当您将文件放入 HTML 文件时,您知道 $ 无所不在