我可以/应该将 ES 模块用于客户端 JS 文件吗?我使用 node.js [重复]

Posted

技术标签:

【中文标题】我可以/应该将 ES 模块用于客户端 JS 文件吗?我使用 node.js [重复]【英文标题】:Can I/should I use ES modules for client-side JS files? I use node.js [duplicate] 【发布时间】:2020-12-03 20:15:11 【问题描述】:

我正在使用最新版本的 node.js 和 Chrome。 Node.js 仍然依赖 CommonJS 来做模块(导出和导入)。 推荐给我的CommonJS page 实际上是说 CommonJS 不适合客户端,而是使用 ES 模块。这让我觉得我应该将它们用于我正在创建的网站。可以这样做吗?

我在尝试时遇到的错误是“未捕获的语法错误:意外的令牌“导出”和意外的令牌导出”和“未捕获的语法错误:无法在模块外使用 import 语句。”

以下是我在包含 type="module" 时遇到的错误:

【问题讨论】:

Node.js 支持 CommonJS 和 ES 模块。但不是同时。 @GirkovArpa 我是否可以重新提出我的问题,因为我已经在建议的文章中实施了解决方案,但它没有给我带来成功? 我无法打开或关闭任何问题。但是您刚刚使用type="module" 方法解决了您最初的问题。现在你有一个全新的问题需要一个新的问题(公平的警告,它可能会被关闭,因为它之前被问过和回答过)。 @GirkovArpa 是的,我已经避免了偷懒,并找到了使用此 Chrome 扩展程序将我的网页托管在服务器上的解决方案:chrome.google.com/webstore/detail/web-server-for-chrome/… 【参考方案1】:

<script type="module"> 而不是<script>

【讨论】:

以上是关于我可以/应该将 ES 模块用于客户端 JS 文件吗?我使用 node.js [重复]的主要内容,如果未能解决你的问题,请参考以下文章

可以将 socket.io 用于域套接字吗?

如何欺骗 Node.js 将 .js 文件加载为 ES6 模块?

模块解析失败:es6 用 .JS 文件中的 JSX 反应组件

无模板的组件

ES6的模块加载器也能加载资产吗(html/css/...)

ES6模块的import和export用法总结