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

时间:2017-08-10 15:40:20

标签: javascript ecmascript-6 browserify

我有一个浏览器应用程序的项目,我想分成两部分。 作为一个最小的例子,想象一下./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。

1 个答案:

答案 0 :(得分:1)

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