googlearchive / js-marker-clusterer

A marker clustering library for the Google Maps JavaScript API v3.
https://googlemaps.github.io/js-marker-clusterer/docs/reference.html
Apache License 2.0
1.28k stars 775 forks source link

Import MarkerClusterer as a module: Missing module.exports #29

Open monteiro opened 8 years ago

monteiro commented 8 years ago

I'm using webpack and I needed to load this as a dependency to my project but I can't because there is no module.exports.

Is there any way to solve this?

Thanks!

monteiro commented 8 years ago

I've used the shim AMD comparable in webpack to solve this issue:

npm install exports-loader imports-loader --save-dev

    module: {
        noParse: [],
        loaders: [
            {
                test: ABSOLUTE_PATH_TO_YOUR_MARKERCLUSTERER,
                loader: 'exports?MarkerClusterer'
            }
        ]
    }
fipp commented 8 years ago

Hi Monteiro, and thank you for the solution! Do you do something else than what you've mentioned to get this to work, because I'm struggeling.

I installed markerclustererplus with npm install markerclustererplus and then added this to my webpack config:

loaders: [{
     ...
    ,{
      test: path.join(__dirname, 'node_modules', 'markerclustererplus', 'dist', 'markerclusterer.min.js'),
      loader: 'exports?MarkerClusterer'
    }]

Then I add this in my JS file: var MarkerClusterer = require('MarkerClusterer');

..But I get this error: Module not found: Error: Cannot resolve module 'MarkerClusterer' in ...

Any help would be greatly appreciated!

monteiro commented 8 years ago

@fipp do you have the npm packages so you can do exports?package?

npm install exports-loader imports-loader --save-dev

rasmuswoelk commented 8 years ago

Hi

I'm having this problem - maybe you have the solution.

webpack.config.js in module -> loaders:

                {
                  test: path.resolve(__dirname, 'node_modules/markerclustererplus/dist/markerclusterer.min.js'),
                  loader: 'exports?MarkerClusterer'
                }

In my home.js file I import:

var MarkerClusterer = require('MarkerClusterer');

When I run npm start:

ERROR in ./resources/assets/js/deprecated/pages/home.js Module not found: Error: Cannot resolve module 'MarkerClusterer' in /Projects/ @ ./pages/home.js 3:22-48

I have exports-loader, imports-loader and markerclustererplus installed by NPM.

Any ideas?

oshalygin commented 7 years ago

Anyone have any solutions to this?

rasmuswoelk commented 7 years ago

@oshalygin I ended up using node-js-marker-clusterer instead. Use it like this var MarkerClusterer = require('node-js-marker-clusterer');

oshalygin commented 7 years ago

@rasmuswoelk I'll give that a whirl, thanks mate