如何从排除的模块(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 文件时,您知道 $
无所不在
我有一个浏览器应用程序项目,我想将其分成两部分。 作为一个最小的例子,假设在 ./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 文件时,您知道 $
无所不在