提问者:小点点

找不到节点repl模块


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

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个答案

匿名用户

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

但是,您当前正在将require(CommonJS模块格式)与export default(ECMAScript模块格式)混合使用。 使用动态import(),这些格式之间只有非常有限的互操作性,但在节点REPL(此处为open issue)中还不可用。 如果需要在REPL中测试签出类,则只需切换到使用commonJS:

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

用法:

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