我正在尝试使用节点 js 中的指挥官和 conf 模块为仅节点 js 的待办事项应用程序构建 CLI,并使用粉笔为输出着色。我不确定如何解决返回的错误:
ReferenceError: require is not defined in ES module scope, you can use import instead 此文件被视为 ES 模块,因为它有一个 '.js' 文件扩展名包含“type”:“module”。要将其视为 CommonJS 脚本,请将其重命名为使用“.cjs”文件扩展名。
我在conf和commander中都遇到了上述错误
任何关于我如何进行调试的建议,或者改变使用 readline 和 events/EventEmitter 的方法会更好,将不胜感激,谢谢
以下是已编辑的代码版本:
列表.js
const conf = new (require('conf'))();
const chalk = require('chalk');
function list() {
const todoList = conf.get('todo-list');
if (todoList && todoList.length) {
console.log(
chalk.blue.bold(
'Tasks in green are done. Tasks in yellow are still not done.'
)
}
}
module.exports = list;
index.js 文件
const { program } = require('commander');
const list = require('./list');
program.command('list').description('List all the TODO tasks').action(list);
program.command('add <task>').description('Add a new TODO task').action(add);
program.parse();
包.json 文件
{
"main": "index.js",
"type": "module",
"keywords": [],
"dependencies": {
"chalk": "^5.0.0",
"chalk-cli": "^5.0.0",
"commander": "^8.3.0",
"conf": "^10.1.1"
},
"bin": {
"todos": "index.js"
}
}