这是用 C++ 创建 Node.js 插件的旧示例:
https://nodejs.org/api/addons.html
它可以使用 node-gyp 构建为通用 JS 模块,与函数“require”配合使用效果良好。但是,编译后的模块无法导入到.mjs 文件中。
这工作正常:node test.js
// test.js
var m = require("./build/Release/addon");
console.log(m.hello());
这不是:node --experimental-modules test.mjs
// test.mjs
import * as m from "./build/Release/addon";
console.log(m.hello());
错误是:错误 [ERR_MODULE_NOT_FOUND]:找不到模块
该 C++ 插件示例页面适用于具有常见 JS 的旧 Node.js,有任何可以构建为 ES6 模块以导入 .mjs 文件的 C++ 插件示例吗?
最佳答案
Node does not currently support loading native modules with import
syntax .
在 ESM 文件中,您需要执行以下操作:
import { createRequire } from 'module';
const require = createRequire(import.meta.url);
const m = require('./build/Release/addon');
console.log(m.hello());
关于javascript - Node.js:如何用 C++ 创建 ES6 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68006615/