Javascript 从CodeSandbox导出ZIP后,无法在模块错误之外使用导入语句
我已经下载了这个Phaser/MatterJS(->文件->导出到ZIP)。 在本地运行会返回以下错误: 未捕获的语法错误:无法在模块外部使用import语句-index.js:1 如何解决这个问题 到目前为止,我尝试的是: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文件是一个模块,然后它会改变你使用它背后
- 我已经安装了所有依赖项
- 更新至最新的NodeJS
- 在本地服务器上运行它
<script type = "module" src = "./js/index.js">
你必须告诉浏览器这个js文件是一个模块,然后它会改变你使用它背后的一些东西。这对开始使用模块非常有帮助。正如您自己所看到的,文件中编写的javascript不是浏览器能够理解的现成内容,因此错误被抛出了您的视线 要发送浏览器能够理解的js,您需要使用webpack、parcel等工具。已在项目中使用您共享的地块 您必须执行以下操作:
- 安装probject的依赖项
- 在项目运行的根目录中运行
npm run start
- parcel将捆绑这些文件,然后打开一个包含结果的html页面
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模块的路径有问题,你检查过了吗?