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

Mat*_*att 7 commonjs node.js express babeljs es6-modules

我遇到了有关如何使用 Babel 在 Node.js 中使用 ES6 导入的教程,但 CommonJS 导入不起作用。我想在 Node.js (Express.js) 的同一文件中使用 ES6 导入和 CommonJS 导入。

main.js

const jsdom = require("jsdom");
import {GotRequestFunction} from 'got';
Run Code Online (Sandbox Code Playgroud)

这可能吗?

x00*_*x00 8

文件:

  1. ES模块和CommonJS之间的区别
  2. module.createRequire(文件名)
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

Run Code Online (Sandbox Code Playgroud)

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

`Warning: To load an ES module, set "type": "module" in the package.json or use the .mjs extension.`
Run Code Online (Sandbox Code Playgroud)