Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从CodeSandbox导出ZIP后,无法在模块错误之外使用导入语句_Javascript_Node.js_Module_Phaser Framework_Matter.js - Fatal编程技术网

Javascript 从CodeSandbox导出ZIP后,无法在模块错误之外使用导入语句

Javascript 从CodeSandbox导出ZIP后,无法在模块错误之外使用导入语句,javascript,node.js,module,phaser-framework,matter.js,Javascript,Node.js,Module,Phaser Framework,Matter.js,我已经下载了这个Phaser/MatterJS(->文件->导出到ZIP)。 在本地运行会返回以下错误: 未捕获的语法错误:无法在模块外部使用import语句-index.js:1 如何解决这个问题 到目前为止,我尝试的是: 我已经安装了所有依赖项 更新至最新的NodeJS 在本地服务器上运行它 index.html: <script type = "module" src = "./js/index.js"> 你必须告诉浏览器这个js文件是一个模块,然后它会改变你使用它背后

我已经下载了这个Phaser/MatterJS(->文件->导出到ZIP)。 在本地运行会返回以下错误:

未捕获的语法错误:无法在模块外部使用import语句-index.js:1

如何解决这个问题

到目前为止,我尝试的是:

  • 我已经安装了所有依赖项
  • 更新至最新的NodeJS
  • 在本地服务器上运行它
index.html:

<script type = "module" src = "./js/index.js">


你必须告诉浏览器这个js文件是一个模块,然后它会改变你使用它背后的一些东西。这对开始使用模块非常有帮助。

正如您自己所看到的,文件中编写的javascript不是浏览器能够理解的现成内容,因此错误被抛出了您的视线

要发送浏览器能够理解的js,您需要使用webpack、parcel等工具。已在项目中使用您共享的地块

您必须执行以下操作:

  • 安装probject的依赖项
  • 在项目运行的根目录中运行
    npm run start
  • parcel将捆绑这些文件,然后打开一个包含结果的html页面
不幸的是,当我尝试这个包时,它对我不起作用,出现了与JSON加载相关的错误,但是我已经设法让游戏正常运行,通过运行
npm run build
,这将为您输出名为dist的文件夹中的构建文件

转到dist文件夹,在那里启动一个本地服务器,并访问它应该可以工作的文件,但是对我来说,它同样不能工作。但我注意到,这是由于包裹没有获得捆绑js文件的正确相对路径

要解决这个问题,打开dist文件夹中的index.html文件,您会发现其中有一个脚本

<script src="/js.d8530414.js"></script>

我不得不把它改成

<script src="./js.d8530414.js"></script> // because this was the correct file in my file system
//因为这是我文件系统中的正确文件
然后访问dist文件夹中的html文件,游戏就可以正常运行了


显然,这种工作方式并不方便,因为对于希望看到的每个更改,必须使用
npm run build
再次构建项目。您需要解决npm run start不工作的问题,如果您使用的操作系统与我的不同,则可能永远不会出现此问题。如果发生这种情况,我建议更新包并重试,如果问题仍然存在,那么您可以这样做,因为问题似乎与phaser希望json文件为json有关,同时包将其编译为javascript对象。

谢谢您的回答。我尝试了它,但得到了这个错误:
uncaughttypeerror:解析模块说明符“phaser”失败。相对引用必须以“/”、“/”或“./”
开头。有什么想法我在这里遗漏了吗?看起来你从index.js到phaser模块的路径有问题,你检查过了吗?