- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试使用 Grall.js 的实验性 ES 模块支持。我使用以下脚本:ES module "lib"
export const sqrt = Math.sqrt;
export function square(x) {
return x * x;
}
export function diag(x, y) {
return sqrt(square(x) + square(y));
}
和主脚本“script”
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运行主脚本。它不会尝试从磁盘上的某个位置加载库,而是抛出:
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)
出了什么问题?
最佳答案
文件名有一个约定,会触发将它们视为 ES 模块 - 文件必须以 .mjs
结尾。或者,可以在 org.graalvm.polyglot.Source
对象上使用(非官方)mime 类型 application/javascript+module
。如果没有此 import
语句,则不允许 1 。
这是使用 Polyglot Source/Context API 时的样子:
String script = "import {x} from 'lib'";
// these two support "import"
Source source1 = Source.newBuilder("js", script, "script.mjs").build();
Source source2 = Source.newBuilder("js", script, "script").mimeType("application/javascript+module").build();
// this one doesn't
//Source source3 = Source.newBuilder("js", script, "script").build();
这是针对 JSR-223 API 的:
javax.script.ScriptEngine engine = factory.getEngineByName("graal.js");
engine.getContext().setAttribute(ScriptEngine.FILENAME, "script.mjs", ScriptContext.ENGINE_SCOPE);
好像还有an older convention - 使用 module:
前缀,但这似乎不再起作用。
关于java - Graal.js 导入模块导致 org.graalvm.polyglot.PolyglotException : SyntaxError: Expected an operand but found import,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59161450/
以前位于 http://polyglot.sonatype.org/ 的 Maven Polyglot 项目发生了什么变化? 如 this article 中所述, One exciting new
我正在尝试编写使用类型函数的 python2 和 python3 兼容代码。两者都在 2 v/s 3 中返回不同的字符串,我必须在我的单元测试中断言。 Python 3.7.4 (default, O
我正在尝试使用 polyglot 包进行希伯来语的命名实体识别。 这是我的代码: # -*- coding: utf8 -*- import polyglot from polyglot.text i
是否有任何方法可以将 javascript 源代码转换为某种预编译的声明,可以以某种方式存储并加载到 org.graalvm.polyglot.Context 而不是将其作为原始字符串进行评估?类似于
使用 polyglot.js , 我想知道如何翻译文本中的标记/组件?考虑以下文本示例: with the free features you can achieve the following th
假设我有一个名为 df.Text 的列,其中包含文本(超过 1 个句子)并且我想使用多语言 Detector 来检测语言并存储值在新列 df['Text-Lang'] 中,我如何确保我还捕获了其他详细
我一直在考虑将我当前的 HTML5 文档转换为多语言 HTML5 文档。我认为即使它们只作为 text/html 提供,编写 XML 的额外检查也有助于保持我的编码习惯整洁有效。 在纯 HTML5 领
本文整理了Java中org.sonatype.maven.polyglot.yaml.YamlMapping类的一些代码示例,展示了YamlMapping类的具体用法。这些代码示例主要来源于Githu
第一次尝试在我的 Webpack 项目中使用 Polyglot,但一直收到未定义多语言的错误。我可以从某个地方的节点导入它吗?还是我需要在本地导入它们? var polyglot = new Poly
Polyglot是给予在多种语言中有效的程序的名称。 例如, #include #define do main() do { printf("Hello World!\n"); } 在 C 和
我正在使用 polyglot 函数将文本从一种语言转换为另一种语言,例如将西类牙语转换为英语。 我按照说明安装了 Polyglot 和所需的模块。 但是在运行代码的时候 from polyglot.d
我正在尝试使用以下命令安装 Polyglot 包: pip install polyglot 我收到以下内容: Collecting polyglot Using cached polyglot-
本文整理了Java中org.sonatype.maven.polyglot.yaml.YamlMapping.setAcceptLocationExtensions()方法的一些代码示例,展示了Yam
本文整理了Java中org.sonatype.maven.polyglot.yaml.YamlMapping.setAcceptOptionKeys()方法的一些代码示例,展示了YamlMapping
本文整理了Java中org.sonatype.maven.polyglot.yaml.YamlMapping.setPriority()方法的一些代码示例,展示了YamlMapping.setPrio
本文整理了Java中org.sonatype.maven.polyglot.yaml.YamlMapping.setPomNames()方法的一些代码示例,展示了YamlMapping.setPomN
我正在设计一个必须托管在 Google Cloud SQL 和 Google Datastore 上的全局 ERP/调度系统。 在大多数情况下,数据是强相关的,而且数据量不大或不稳定,因此非常适合关系
在 GraalVM CE 上运行。 openjdk version "11.0.5" 2019-10-15 OpenJDK Runtime Environment (build 11.0.5+10-j
我正在设置一个新的 Springboot 2 应用程序,它同时使用 MYSQL 数据库和 MongoDB 数据库进行数据存储。 我无法理解如何为同时使用 DataJPA 和 DataMongo 的测试
我正在使用一个名为 Polyglot 的编译器,它是一个高度可扩展的 Java 编译器。 我在尝试编译一些测试代码时似乎遇到了这个异常: "Invalid action number found i
我是一名优秀的程序员,十分优秀!