JavaScript ES6导入语法?

时间:2019-04-01 00:33:09

标签: javascript ecmascript-6 import es6-modules

我正在测试新的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

1 个答案:

答案 0 :(得分:1)

您可以使用不同的import调用-如果您的服务器是Node,甚至可以使用require

const lib = require("./lib-file");
import "./lib-file";
import libFile from "lib-file"; 

请注意,在第三项中,您需要从export libFilelib-file.js开始。