commonjs - 如何将 CommonJS 模块与 Oracle 的新 Nashorn JS 引擎结合使用?

标签 commonjs nashorn

我正在寻找 Nashorn 的模块系统。据我所知,CommonJS 是处理 JS 模块的方法。我浏览了该列表( herehere ),发现 Java 的 CommonJS 实现方式很少。

Narwhal不再活跃,它是 documentation不再托管在 GitHub 上。是否有支持 Java 的现有 CommonJS 实现,或者我应该开始一个新项目吗?

最佳答案

在这里查看 jvm-npm https://github.com/nodyn/jvm-npm 。该项目被 nodyn 使用作为 CommonJS 模块系统。它支持 NPM,这意味着您可以直接从 NPM 加载模块,但它不提供任何 Node.js API。

这是一个简单的用法示例:

$ npm install pegjs
npm http GET https://registry.npmjs.org/pegjs
npm http 200 https://registry.npmjs.org/pegjs
pegjs@0.8.0 node_modules/pegjs
$ jrunscript
nashorn> typeof require
undefined
nashorn> load('./jvm-npm.js')
nashorn> typeof require
function
nashorn> var PEG = require('pegjs');
nashorn> typeof PEG
object

它主要是 Javascript,但实际从文件系统加载文件等是使用 Java 完成的。

关于commonjs - 如何将 CommonJS 模块与 Oracle 的新 Nashorn JS 引擎结合使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19500141/

相关文章:

java - 在 Nashorn JavaScript 中重写 Java 类的方法

javascript - OWASP ZAP 被动扫描脚本

javascript - 使用 CommonJS 模块汇总将未命名函数导出为模块?

javascript - svelte electron 中的 JS 文件中不能需要 Node 模块

node.js - 在 TypeScript 中编写一个 Node 模块以供 TS 和 JS 项目使用

javascript - 在 Nashorn 中跨上下文共享原生 JavaScript 对象

javascript - 将 Nashorn 迁移到 GraalVM

javascript - 使用 requirejs 在项目中包含 commonjs 模块的最佳方法

javascript - 从同一文件中获取 module.exports