导出时,获取导出声明可能仅出现在JavaScript模块的顶层
无论我把export语句放在哪里,我都会得到相同的错误 导出声明只能出现在模块的顶层 我曾尝试将type=“module”添加到脚本标记中,但没有效果,我正在尝试避免它 JS:导出时,获取导出声明可能仅出现在JavaScript模块的顶层,javascript,ecmascript-2020,Javascript,Ecmascript 2020,无论我把export语句放在哪里,我都会得到相同的错误 导出声明只能出现在模块的顶层 我曾尝试将type=“module”添加到脚本标记中,但没有效果,我正在尝试避免它 JS: export { LogTypes, DateTypes, GetTypes, get, show, hide } from ...; const LogTypes = { Default: "DEFAULT", Info: "INFO", Warn: &
export { LogTypes, DateTypes, GetTypes, get, show, hide } from ...;
const LogTypes = {
Default: "DEFAULT",
Info: "INFO",
Warn: "WARN",
Error: "ERROR"
};
const DateTypes = {
Current: "CURRENT",
Log: "LOG",
Short: "SHORT",
Long: "LONG"
};
const GetTypes = {
Name: "NAME",
Id: "ID",
Tag: "TAG",
Query: "QUERY",
QueryAll: "QUERYALL"
};
...
当包含JavaScript文件并允许在CORS上连接时,我发现了这一点 JS: HTML:
导出内容的模块不应该有
标记
导入这些内容的脚本需要一个
标记来加载它
是
import
语句导致浏览器请求模块的URL并加载它,而不是单独的
标记。日志类型
,日期类型
,和GetTypes
在使用导出
的同一模块中声明。为什么您使用from
关键字,就好像您从其他地方获取它们一样?顺便说一下,export。。。来自代码>相当于导入。。。从…起出口代码>,导入只能出现在模块顶部。@GhassenLouhaichi正在尝试我能做的任何事情。现在我尝试导入为模块我已经删除了所有的导出语句,因为我真的不需要它们明白了什么?
// log types
export const LogTypes = {
Default: "DEFAULT",
Info: "INFO",
Warn: "WARN",
Error: "ERROR"
};
// date types
export const DateTypes = {
Current: "CURRENT",
Log: "LOG",
Short: "SHORT",
Long: "LONG"
};
// supported types by the get function
export const GetTypes = {
Name: "NAME",
Id: "ID",
Tag: "TAG",
Query: "QUERY",
QueryAll: "QUERYALL"
};
// gets elements based on type and elm value
export const get = (type, elm) => {
let result = null;
switch (upper(type)) {
case GetTypes.Name:
result = document.getElementsByName(elm);
break;
case GetTypes.Id:
result = document.getElementById(elm);
break;
case GetTypes.Tag:
result = document.getElementsByTagName(elm);
break;
case GetTypes.Query:
result = document.querySelector(elm).elements;
break;
case GetTypes.QueryAll:
result = document.querySelectorAll(elm);
break;
default:
throw new Error(type + " not supported");
}
return result;
};
<script src="/SCRIPT/Creator.js"></script>