在 Node 13 中导入 Inquirer 作为模块

Import Inquirer as module in Node 13

我在使用 Node 13.12.0 中的模块导入 Inquirer 时遇到问题。任何其他 import 效果都很好。只要我一直在使用 Node 12.xrequire(),它就很好用。

我的 anything.mjs

用例
import fs from "fs"; // works well
import inquirer from 'inquirer'; // undefined

所以我尝试只导入一个导出的模块

import {prompt} from 'inquirer'; // The requested module 'inquirer' does not provide an export named 'prompt'

也尝试过:

import * as inquirer from 'inquirer'; // [Module] { default: undefined }

我也试过 require() 但它不再在模块中定义了。


我应该如何使用 modulesNode 13.12.0 中正确导入 Inquirer

根据docs,您可以在节点 13 的 ESM 中使用 require,如下所示:

import { createRequire } from 'module';
const require = createRequire(import.meta.url);

const inquirer = require('inquirer');

使用ES Modules和enquirer 2.3.6 我就是这样用的。我们可以将类型传递给提示对象。

import enquirer from 'enquirer';

const enquirerObj =  new enquirer();

const response = await enquirerObj.prompt({
    type:'confirm',
    name: 'question',
    message: 'Want to answer?'
  });

 console.log(response);