【问题标题】:import can't be used in chrome 61?导入不能在 chrome 61 中使用?
【发布时间】:2017-09-29 08:23:15
【问题描述】:

我正在尝试在 chrome 的最新发布版本,即 chrome 61 中播放 ES6 功能,但在使用 import 关键字时遇到了错误。 从技术上讲,import 用作以下方法,但控制台显示错误:

import Mymodule from "Mymodule.js"

控制台打印:

Uncaught SyntaxError: Unexpected identifier

我已经开启了以下实验性功能:

chrome://flags/#enable-javascript-harmony
chrome://flags/#enable-module-scripts

然后继续:

chrome://flags/#disable-javascript-harmony-shipping

【问题讨论】:

标签: javascript google-chrome ecmascript-6


【解决方案1】:

问题是from "Mymodule.js"

模块必须是完整的 URL(包括协议)、绝对路径(以 / 开头)或相对路径(以 ./ 或 ../ 开头)。

保留任何其他字符串以供将来使用。

来源:https://jakearchibald.com/2017/es-modules-in-browsers/#bare-import-specifiers-arent-currently-supported (引用自https://developers.google.com/web/updates/2017/09/nic61#modules

【讨论】:

  • 一个挑剔的问题的优秀答案,很难找到任何好的文档或答案。谢谢@himdel。
【解决方案2】:

“导入”支持尚未原生包含在 Chrome 中,但目前正在开发中

https://www.chromestatus.com/feature/5684934484164608

在此之前,您需要使用 Babel 和 Browserify 或 Webpack 等工具编译和捆绑您的代码。

更新:正如下面@neaumusic 所述,此功能是Chrome 61 的一部分。What's New 注释引用Paul Irish's Module-implementation 作为示例。

查看您的 MyModule.js 代码会有所帮助,以了解您的模块正在导出的确切内容。这部分决定了您如何表达您的“导入”语句。

【讨论】:

  • Chrome Devtools 有一个更新,专门要求导入
  • 有趣。我看到 Paul Irish 的 Module Implementation 演示在浏览器中运行得很好。请注意,我在上面提到过该功能仍处于“开发中”。你能为你的 Mymodule.js 提供示例代码吗?
  • 参考kangax.github.io/compat-table/es6并努力,我发现chrome中名为chrome://flags/#enable-javascript-harmonychrome://flags/#enable-module-scripts的设置应该是enabled来开发ES6级别的JS。
猜你喜欢
  • 2017-12-17
  • 2018-02-14
  • 1970-01-01
  • 2018-03-25
  • 1970-01-01
  • 2015-01-29
  • 2023-03-07
  • 2018-01-25
  • 2020-09-18
相关资源
最近更新 更多