在 Node 13 中导入 Inquirer 作为模块
Import Inquirer as module in Node 13
我在使用 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
?
根据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);
我在使用 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
?
根据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);