gpt4 book ai didi

javascript - 如何运行 babel.transform 与 Nashorn react ?

转载 作者:搜寻专家 更新时间:2023-10-31 22:57:39 24 4
gpt4 key购买 nike

我正在尝试使用 babel.transform 而不是 JSXTranformer 进行 react 。

...
ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine nashorn = mgr.getEngineByName("nashorn");
nashorn.eval("var process = {env:{}}"); // node-modules expect that
nashorn.eval(getScript("com/facebook/babel/jvm-npm.js"));
babel = (JSObject) nashorn.eval("require('babel');");
...

Babel 和 babel-core 作为全局 Node 模块安装,我得到一个错误:

Testsuite: com.my.app.BabelTransformerTest
Cannot find module ./lib/api/node.js
Cannot load module babel-core LOAD_ERROR
Cannot load module babel LOAD_ERROR
Cannot load module babel-core LOAD_ERROR
Cannot load module babel LOAD_ERROR
Cannot find module ./lib/api/node.js
Cannot load module babel-core LOAD_ERROR
Cannot load module babel LOAD_ERROR

./lib/api/node.js 位于 C:\Users\***\AppData\Roaming\npm\node_modules

我听说可以从 Nashorn 运行 babel.transform

也许有办法只加载 babel 的某些模块作为 JavaScript 文件?

最佳答案

我已经让它与 Babel Standalone 一起工作了在 jdk1.8.0_45 中使用以下脚本:

FileReader babelScript = new FileReader("babel.js");
ScriptEngine engine = new ScriptEngineManager().getEngineByMimeType("text/javascript");

SimpleBindings bindings = new SimpleBindings();
engine.eval(babelScript, bindings);

bindings.put("input", "<Component />");
Object output = engine.eval("Babel.transform(input, { presets: ['react'] }).code", bindings);
System.out.println(output);

哪个返回:

React.createElement(Component, null);

es2015 预设也适用。

关于javascript - 如何运行 babel.transform 与 Nashorn react ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32654015/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com