themustafaomar / jsvectormap

A lightweight JavaScript library for creating interactive maps and pretty data visualization.
https://jvm-docs.vercel.app
MIT License
398 stars 80 forks source link

Version 1.4.4 || Uncaught ReferenceError: jsVectorMap is not defined #69

Closed Mgrmjp closed 2 years ago

Mgrmjp commented 2 years ago

Barebones project and trying to use the package. Getting this in console:

Uncaught ReferenceError: jsVectorMap is not defined
    at Object.3r67O ((index):2496:1)
    at newRequire ((index):89:24)
    at localRequire ((index):101:14)
    at Object.5HwUs.lodash/range ((index):490:16)
    at newRequire ((index):89:24)
    at localRequire ((index):101:14)
    at Object.fUiC5../app.js ((index):480:14)
    at newRequire ((index):89:24)
    at (index):138:5
    at (index):161:3

3r67O @ (index):2496
newRequire @ (index):89
localRequire @ (index):101
5HwUs.lodash/range @ (index):490
newRequire @ (index):89
localRequire @ (index):101
fUiC5../app.js @ (index):480
newRequire @ (index):89
(anonymous) @ (index):138
(anonymous) @ (index):161

Downgrading to 1.3.3 worked, but what might be the problem?

Importing like so:

import 'jsvectormap';
import 'jsvectormap/dist/maps/world.js';

const map = new jsVectorMap({
  selector: '#map',
  map: 'world',
});

Installed via npm. Node version 14.19.0.

themustafaomar commented 2 years ago

Hi @Mgrmjp

There's was a typo in the documentation website and readme file about import statement, sorry for that.

It's fixed now, you can import like so:

import jsVectorMap from 'jsvectormap'
import 'jsvectormap/dist/maps/world.js'

const map = new jsVectorMap({
  selector: '#map',
  map: 'world',
})
Mgrmjp commented 2 years ago

Still doing the same even after changing the import. 😢

themustafaomar commented 2 years ago

Thank you for letting me know about this issue!

It looks like it's failing, starting from v1.4.0 when using ESM or CJS modules, but it works just fine on HTML files.

As a temporary workaround you can do so:

import jsVectorMap from "jsvectormap"

window.jsVectorMap = jsVectorMap

import "jsvectormap/dist/maps/world-merc"

const map = new jsVectorMap({
  selector: "#map",
  map: "world_merc"
})
Mgrmjp commented 2 years ago

That didn't seem to help either. 😂

Maybe it's something on my end. 🤷🏻‍♂️

themustafaomar commented 2 years ago

🤷🏻‍♂️

https://codesandbox.io/s/jvm-temp-workaround-iqp6rj

rushenn commented 2 years ago

🤷🏻‍♂️

https://codesandbox.io/s/jvm-temp-workaround-iqp6rj

Try to change the jsvectormap version to 1.4.4, the issue is still present.

themustafaomar commented 2 years ago

@rushenn Gonna publish a new version today which fixes the issue.

themustafaomar commented 2 years ago

Please update to v1.4.5 https://iqp6rj.csb.app/