当通过Node.js服务器访问时,Javascript文件在Chrome上工作,但从文件夹打开时不工作

Javascript files working on Chrome when accessed through Node.js server, but not working when opened from folder

本文关键字:工作 文件夹 Chrome 文件 Node js 服务器 Javascript 访问      更新时间:2023-09-26

昨天我将一个Javascript文件拆分为多个文件。当我尝试导出/导入其他文件时,我遇到了一个错误("意外的令牌导出"answers"意外的代币导入")。当我删除导出/导入行时,代码在我的基本Node.js服务器上运行良好。

我刚才检查了其他东西,从文件夹中打开了Chrome中的文件(即,不是通过服务器,而是直接打开HTML文件),但出现了一个错误,我发现这是由于多个JS文件之间缺乏共享。我再次添加了导出/导入命令,得到了原始错误。

奇怪的是,代码在Chrome中的服务器上工作,在服务器上和Firefox中的文件夹中都工作,但在Chrome的文件夹中不工作。

为什么(1)我被阻止使用导出/导入命令,(2)我以这些不同的方式启动文件,成功与失败交织在一起,令人困惑?

导出和导入是ECMA2016规范引入的关键字。最新的开箱即用节点还不支持这些功能。如果它起作用,那么我很确定你正在使用babel在飞行中传输代码。(检查您的包.json)

此外,浏览器中也不支持模块。因此,需要有一个像webpack或browserfy这样的捆绑系统,将所有javascript模块捆绑到一个文件中,使它们在浏览器上工作。此外,如果您在这些文件中使用导入和导出,而不是CommonJS模块样式的require(''),那么您还需要在绑定工具中添加babel transpiration作为插件。

http://blog.andrewray.me/how-to-use-es6-in-nodejs/https://github.com/babel/babel-loader

注意:Babel6带来了很多改变,这些改变可能无法以传统方式工作。所以请确定您使用的是哪一个babel版本。