gpt4 book ai didi

javascript - 浏览器支持模块导入,我该如何使用它?

转载 作者:行者123 更新时间:2023-11-30 11:12:58 25 4
gpt4 key购买 nike

我试图弄清楚为什么我的脚本标签在我的 html 文件中不起作用,我看到一篇文章说你可以通过带有模块 类型。直接来自本网站:https://www.sitepoint.com/understanding-es6-modules/

<script type="module" src="./main.js"></script>
// or
<script type="module">
import { something } from './somewhere.js';
// ...
</script>

然后我尝试了它并且识别了导入的模块但是得到这个错误 Can't find variable World 是因为我的 example.js 文件没有它在它的范围内?我不明白他们“处理”的顺序?不懂术语抱歉。

下面是我的尝试

//HTML 
<body>
<script type="module">
import { World, Ball, Paddle, Brick, Hud} from "./brickbreakclasses.js"
</script>
<script src="example.js"></script>
</body>

example.js 文件

 // commented this part out because it was imported in html file    
// import { World, Ball, Paddle, Brick, Hud } from "./brickbreakclasses";
var canvas = new World(document.getElementById("canvas") );
var ball = new Ball(canvas)
var brick = new Brick(canvas)
var hud = new Hud(canvas)
var paddle = new Paddle(canvas)

我希望这是有道理的,但我真的很想了解为什么我不能只在 JS 文件中要求或导入某些内容,然后通过脚本将其添加到 html 中。我一直在使用 webpack 来捆绑所有内容并将其放入我的 html 中。但是我现在正在制作一个 npm 包并且我听说人们不喜欢预先捆绑的包所以我试图找到一种方法让用户在 html 中使用我的模块,而无需安装 webpack 或类似的东西。

最佳答案

<script type="module"> 中声明的变量是该模块的本地。制作example.js一个模块,从那里导入类,然后你就可以使用它们了:

HTML

<body>
<script type="module" src="example.js"></script>
</body>

例子.js

import { World, Ball, Paddle, Brick, Hud } from "./brickbreakclasses.js";
var canvas = new World(document.getElementById("canvas") );
var ball = new Ball(canvas);
var brick = new Brick(canvas);
var hud = new Hud(canvas);
var paddle = new Paddle(canvas);

关于javascript - 浏览器支持模块导入,我该如何使用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52900591/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com