我想在IIFE(立即调用函数表达式)函数中添加一个javascript模块。不幸的是,我变成了以下语法错误:
GridOptions.accentedSort = true;
我的SyntaxError: import declarations may only appear at top level of a module
javascript模块如下:
math
我还有另一个javascript文件,看起来像这样:
var math = function () {
return {
add: function (num1, num2) {
return num1 * num2;
},
square: function (num) {
return num * num;
}
};
};
if (typeof module !== 'undefined') {
module.exports = math;
}
导入在最顶部定义,但是语法错误坚持要求我必须将导入声明移到顶部。
我还尝试将import语句插入到我的IIFE(立即调用函数表达式)函数的第一行,但这不是有效位置。
万一有人知道这是怎么回事,请写评论。我将非常感激。
答案 0 :(得分:0)
我认为您误以为Python的JavaScript模块。import "math";
不会做任何事情。首先,您需要在变量中分配模块的导出,还需要使用相对路径,否则它将尝试将其解析为NPM模块。
替换
import "math";
使用:
import math from "./math";
此外,如果在函数或方法中间的某个地方使用SyntaxError: import declarations may only appear at top level of a module
语句,则可能会发生错误import
。 所有 import
语句应位于模块的顶层。
答案 1 :(得分:-2)
能否请您尝试添加以下内容,然后再次检查,
module.exports.math = () => {
return {
add: (num1, num2) => {
return num1 * num2;
},
square: (num) => {
return num * num;
}
};
};