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.