我正在测试新的import
语法。但是我有点沮丧,因为我不得不使用的语法似乎并不是我一直在阅读的内容。为什么以下语法有效(在Chrome浏览器中,是扩展程序)?
import * as lib from "./lib-file.js";
此特殊语法有哪些替代方法?
编辑:我认为我必须澄清一些事情。我正在尝试让它在Chrome扩展程序中工作。上面的语法在“弹出”脚本中起作用(在从html文件加载的脚本中)。我写这篇文章是因为我很惊讶我需要扩展名“ .js”。
但是,随后出现了一个新问题。上面的语法在“内容”脚本中不起作用。当html文件中的脚本标记中没有type="module"
时,我得到的错误与从弹出窗口中得到的错误相同。 (Uncaught SyntaxError: Unexpected token *
)导入内容脚本时,这看起来像一个错误,但我不确定。我在那里缺少什么吗?
编辑2:我刚刚找到了这篇文章,该文章似乎告诉我们现在如何解决这些问题:
在Chrome扩展程序https://medium.com/@martinnovk_22870/using-javascript-es6-import-export-modules-in-chrome-extensions-f63a3a0d2736中使用JavaScript ES6导入/导出模块
编辑3: 我刚得到一个指向该实用程序的指针。我注意到他们在浏览器建议的设置中未使用ES6导入。 mozilla / webextension-polyfill:一个轻量级的polyfill库,用于Chrome https://github.com/mozilla/webextension-polyfill
中基于Promise的WebExtension API答案 0 :(得分:1)
您可以使用不同的import
调用-如果您的服务器是Node,甚至可以使用require
:
const lib = require("./lib-file");
import "./lib-file";
import libFile from "lib-file";
请注意,在第三项中,您需要从export libFile
中lib-file.js
开始。