【问题标题】:Node.js: How to create ES6 module in C++Node.js:如何在 C++ 中创建 ES6 模块
【发布时间】:2021-06-16 16:24:18
【问题描述】:

这是在 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());

错误是:Error [ERR_MODULE_NOT_FOUND]: Cannot find module

那个 C++ 插件示例页面适用于带有通用 JS 的旧 Node.js,是否有任何可以构建为 ES6 模块以导入 .mjs 文件的 C++ 插件示例?

【问题讨论】:

    标签: javascript c++ node.js ecmascript-6 module


    【解决方案1】:

    节点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());
    

    【讨论】:

      猜你喜欢
      • 2020-01-15
      • 2021-04-27
      • 1970-01-01
      • 2016-12-20
      • 2016-09-20
      • 1970-01-01
      • 2017-08-13
      • 1970-01-01
      • 2019-08-08
      相关资源
      最近更新 更多