This problem has been causing me to lose my sanity for the last couple of days.
Here is my directory structure:
[src] |- cmds/ | |- Gh.js | \- Help.js |- commands.js |... I am trying to import a class exported by commands.js into Help.js and Gh.js (and any other files I might add in the future). However, I keep getting an error:
class Gh extends _commands.Command { ^ TypeError: Class extends value undefined is not a constructor or null All of the files are being transpiled using Babel, with env set to "node": "current" and using the wildcard package. I have tried to set it for "browser" to see if it was an issue of it being too "advanced", but I got a different error about super functions (or something), which I assume is the same issue.
Here is the class being exported from commands.js:
export class Command { constructor (msg) { this.id = msg.author.id this.msg = msg } action () {} get data () { return readData().user[this.id] } updateUserData (key, val) { updateUserData(this.id, key, val) } sendMsg (data) { sendMsg(this.msg, data) } } ...and here is cmds/Gh.js, one of the files that I am trying to import Command into:
import {Command} from '../commands' export class Gh extends Command { constructor (msg) { super(msg) this.desc = 'Returns GitHub repository link and exits' } action () { this.sendMsg('GitHub link: https://github.com/owm111/knife-wife') } } I tried putting Command into both of the cmds/, and they worked perfectly. However, when moving it back into commands.js, it broke again. I tried changing the path it is importing from from ../commands to ./../commands, ../commands.js, ./../commands.js; none worked. I moving commands.js into cmds/, still broke. I tried to console.log(Command) in both of the cmds/, but they both returned undefined.
All of this makes it look like is a problem with importing, but I cannot figure out what for the life of me. Please help.