Node.js 如何在同一文件中使用 ES6 导入和 CommonJS 导入

How to use ES6 imports and CommonJS imports in the same file in Node.js

我在 Node.js 中看到了关于如何使用 Babel 使用 ES6 导入的教程,但是 CommonJS 导入不起作用。我想在 Node.js (Express.js).

中的相同文件 中使用 ES6 导入和 CommonJS 导入

main.js

const jsdom = require("jsdom");
import {GotRequestFunction} from 'got';

这可能吗?

文档:

  1. Differences between ES modules and CommonJS
  2. module.createRequire(filename)
import { createRequire } from 'module';
const require = createRequire(import.meta.url);

import { A } from "./A.mjs" // NB: .mjs extention
console.log(A) // it works

const fs = require('fs')
console.log(fs) // it works as well

如果您不喜欢 .mjs 扩展,请遵循节点可执行文件本身给出的建议。

`Warning: To load an ES module, set "type": "module" in the package.json or use the .mjs extension.`