JavaScript ES6导入语法?

问题描述 投票:0回答:1

我只是在测试新的import语法。但是我有点沮丧,因为我必须使用的语法似乎不是我一直在阅读的。为什么下面的语法有效(在Chrome中,在扩展名中)?

import * as lib from "./lib-file.js";

这种特殊语法有哪些替代方案?


编辑:我想我必须澄清一些事情。我想在Chrome扩展程序中使用它。上面的语法在“弹出”脚本中工作(在从那里的html文件加载的脚本中)。我写这篇文章是因为我很惊讶我需要“.js”扩展名。

然而,出现了一个新问题。上述语法在“内容”脚本中不起作用。我得到的错误与我从弹出窗口获得的错误相同,当时html文件中的脚本标记中没有type="module"。 (Uncaught SyntaxError: Unexpected token *)这在导入内容脚本时看起来像一个bug,但我完全不确定。我错过了什么吗?


编辑2:我刚刚发现这篇文章似乎告诉我们现在如何解决这些问题:

在Chrome扩展程序https://medium.com/@martinnovk_22870/using-javascript-es6-import-export-modules-in-chrome-extensions-f63a3a0d2736中使用JavaScript ES6导入/导出模块


编辑3:我刚刚得到一个指向这个实用程序的指针。我注意到他们不在浏览器的建议设置中使用ES6导入。 mozilla / webextension-polyfill:Chrome https://github.com/mozilla/webextension-polyfill中基于Promise的WebExtension API的轻量级polyfill库

javascript node.js ecmascript-6 import es6-modules
1个回答
0
投票

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

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

请注意,在第三个,你需要从你的export libFile lib-file.js

© www.soinside.com 2019 - 2024. All rights reserved.