【发布时间】:2019-08-22 02:59:11
【问题描述】:
我只是在测试新的import 语法。但我有点沮丧,因为我必须使用的语法似乎不是我一直在阅读的。为什么下面的语法有效(在 Chrome 中,在扩展程序中)?
import * as lib from "./lib-file.js";
这种特殊语法有哪些替代方法?
编辑:我想我必须澄清一些事情。我试图让它在 Chrome 扩展程序中工作。上面的语法适用于“弹出”脚本(在从那里的 html 文件加载的脚本中)。我写这篇文章是因为我很惊讶我需要“.js”扩展名。
然而,一个新的问题出现了。上述语法在“内容”脚本中不起作用。我得到的错误与我在 html 文件的脚本标记中没有 type="module" 时从弹出窗口中得到的错误相同。 (Uncaught SyntaxError: Unexpected token *) 导入内容脚本时,这看起来像是一个错误,但我完全不确定。我错过了什么吗?
编辑 2:我刚刚发现这篇文章似乎告诉了现在如何解决这些问题:
在 Chrome 扩展中使用 JavaScript ES6 导入/导出模块https://medium.com/@martinnovk_22870/using-javascript-es6-import-export-modules-in-chrome-extensions-f63a3a0d2736
编辑 3: 我刚刚得到了这个实用程序的指针。我注意到他们在浏览器的建议设置中没有使用 ES6 导入。 mozilla/webextension-polyfill:Chrome 中基于 Promise 的 WebExtension API 的轻量级 polyfill 库 https://github.com/mozilla/webextension-polyfill
【问题讨论】:
-
这只是意味着从给定文件中导入所有带有 lib 前缀的导出模块。导入有多种变体,用例取决于您要导入的模块。
-
@dvlden 谢谢,但我问的是语法,而不是语义。
标签: javascript node.js ecmascript-6 import es6-modules