微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 Visual Studio Code 中运行这个 JavaScript 蛇游戏?

如何解决如何在 Visual Studio Code 中运行这个 JavaScript 蛇游戏?

我用 JavaScript 编写了这个贪吃蛇游戏,当我点击屏幕右上角的运行图标运行 game.js 文件时,我收到了这个错误

[Running] node "/Users/matthewrowlinson/Documents/Javascript Code/snake/game.js"
(node:79394) Warning: To load an ES module,set "type": "module" in the package.json or use the .mjs extension.
(Use `node --trace-warnings ...` to show where the warning was created)
/Users/matthewrowlinson/Documents/Javascript Code/snake/game.js:1
import { update as updateSnake,draw as drawSnake,SNAKE_SPEED,getSnakeHead,snakeIntersection } from './snake.js'
^^^^^^

SyntaxError: Cannot use import statement outside a module
    at wrapSafe (internal/modules/cjs/loader.js:1001:16)
    at Module._compile (internal/modules/cjs/loader.js:1049:27)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10)
    at Module.load (internal/modules/cjs/loader.js:950:32)
    at Function.Module._load (internal/modules/cjs/loader.js:790:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:76:12)
    at internal/main/run_main_module.js:17:47

[Done] exited with code=1 in 0.065 seconds

这很有趣,因为我不应该收到此错误,因为我在 html 文件中专门设置了 type="module"。

<script src="game.js" defer type="module"></script>

到目前为止,这是我看到的解决错误的唯一方法,将类型设置为“模块”,但我不知道为什么它什么也不做,我仍然遇到相同的错误

解决方法

我必须假设您正在尝试托管一个节点脚本,并且“game.js”脚本通过 <script src="game.js" defer type="module"></script> 包含在 html 文件中。

“导入”选项仅适用于服务器端节点脚本。 我假设当您连接到服务器时,您希望 game.js 和 html 文件在您的浏览器上弹出。这意味着 game.js 将在客户端运行,在那里你不能有“节点模块”或“导入”。

要在 html 中包含 js 脚本,您不需要指定“延迟类型”或任何模块内容。

TL:DR

你可以只做<script src="game.js">

如果您不需要托管服务器, 做<script src="game.js"></script>

我无法做出很好的判断,因为我需要假设很多事情。有没有更多信息?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。