我正在尝试用一些类编写一个简单的节点脚本。 我首先定义一个类
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,这里的控制台非常简单。
在要求
或导入
文件之前,文件中的代码不会包含在该文件之外的任何其他作用域中。 当需要/导入时,您从文件中导出的对象的名称不会自动被使用,您仍然必须指定它。
但是,您当前正在将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()