使用Node 13.12.0
中的模块导入Inquirer时遇到问题。任何其他import
都能很好地工作。只要我一直使用Node 12.x
和require()
,它就可以很好地工作。
我的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()
,但它不再在模块中定义。
如何使用modules
在Node 13.12.0
中正确导入Inquirer
?
根据文档,您可以在节点13的ESM中使用require
,如下所示:
import { createRequire } from 'module';
const require = createRequire(import.meta.url);
const inquirer = require('inquirer');
inquirer刚刚发布了v9.0并迁移到ESM模块。所以现在这将简单地工作:
import inquirer from 'inquirer';
const response = await inquirer.prompt([
{
type: 'input',
name: 'question',
message: 'Want to answer?'
}
]);
console.log(response.question);
使用ES模块和查询器2.3.6我是这样使用它的。我们可以将类型传递给prompt对象。
import enquirer from 'enquirer';
const enquirerObj = new enquirer();
const response = await enquirerObj.prompt({
type:'confirm',
name: 'question',
message: 'Want to answer?'
});
console.log(response);