我正在尝试使用 Grall.js 的实验性 ES 模块支持。我使用以下脚本: ES 模块“lib”
export const sqrt = Math.sqrt;
export function square(x) {
return x * x;
}
export function diag(x, y) {
return sqrt(square(x) + square(y));
}
和主脚本“脚本”
import { square, diag } from 'lib';
console.log('square(11)=' + square(11));
console.log('diag(4,3)=' + diag(4, 3));
我使用 graalvm-ce-19.2.1 并通过JSR 223在 JVM 中使用 Polyglot来运行主脚本。它不会尝试从磁盘上的某个位置加载 lib,而是抛出:
javax.script.ScriptException: org.graalvm.polyglot.PolyglotException: SyntaxError: script:1:0 Expected an operand but found import
import { square, diag } from 'lib';
^
script:1:30 Expected ; but found lib
import { square, diag } from 'lib';
^
at com.oracle.truffle.js.scriptengine.GraalJSScriptEngine.eval(GraalJSScriptEngine.java:348)
at com.oracle.truffle.js.scriptengine.GraalJSScriptEngine.eval(GraalJSScriptEngine.java:323)
怎么了?