找不到节点repl模块

时间:2020-07-01 14:15:00

标签: node.js

我试图用一些类编写一个简单的节点脚本。 我首先定义一个类

export default class Checkout() {
  constructor () {
    console.log('checkout')
  }
  check() {
    console.log('check')
  }
}

然后我要使用它

>node
>repl

check = new Checkout()
Uncaught ReferenceError: Checkout is not defined

require('Checkout')
Uncaught Error: Cannot find module 'Checkout'

我该如何解决?我来自Ruby,控制台非常简单。

1 个答案:

答案 0 :(得分:0)

在您requireimport文件之前,文件中的代码不会包含在该文件之外的任何其他范围内。在需要/导入时,从文件中导出的对象的名称不会自动使用,您仍然必须指定它。

但是,您当前正在将require(CommonJS模块格式)和export default(ECMAScript模块格式)混合在一起。使用动态import()的这些格式之间的互操作性非常有限,但是在Node REPL中尚不可用(公开问题here)。如果您需要在REPL中测试Checkout类,则只需切换到使用CommonJS:

module.exports = class Checkout() {
  constructor () {
    console.log('checkout')
  }
  check() {
    console.log('check')
  }
}

用法:

> Checkout = require('checkout.js')
> check = new Checkout()