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



我用JavaScript编写了这个Snake游戏,当我通过点击屏幕右上方的运行图标来运行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

这很有趣,因为我不应该得到这个错误因为我特别设置了type="module"在HTML文件中

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

到目前为止,这是我看到的唯一方法作为这个错误的答案,将类型设置为"模块"我不知道为什么它什么都不做,我仍然得到相同的错误。

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

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

要在html中包含js脚本,你不需要指定"defer type"或者任何模块的东西

TL:博士

你可以直接写<script src="game.js">

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

我不能做出很好的判断,因为我需要假设很多事情。还有更多的信息吗?

最新更新