Giter Site home page Giter Site logo

Comments (17)

desandro avatar desandro commented on May 24, 2024

Yes, I need to test Packery with Require JS

from packery.

hjujah avatar hjujah commented on May 24, 2024

Ok, please let us know about the outcome...

from packery.

gobengo avatar gobengo commented on May 24, 2024

Part of the problem here is that the eventie and eventEmitter dependencies both include shim code that uses define to define the module when requirejs is loading it, and doesn't set a global window.EventEmitter.

However, Packery code depends on these libraries via eg window.EventEmitter. .. But that doesn't get set when loading the deps via requirejs. And RequireJS' shim config doesn't provide a way of forcing that to be set. That is, the shim config is completely ignored if the file, when loaded, uses define(factory). Argh.

@desandro Are you completely against using RequireJS for packery, if you can generate a build (w/ almond) that doesn't require clients to use RequireJS? Alternatively, could you wrap the 4 modules of packery in a UMD wrapper? https://github.com/umdjs/umd/blob/master/amdWeb.js

Right now I think the only option for RequireJS users to make this work is to intentionally pollute the global scope or include Packery deps outside of AMD. Or, what I'll likely do, copy and paste packery code into an amd-comatible module. But then I won't be able to incorporate new changes very easily.

I will buy an org license if @metafizzy can advise us to success here :)

from packery.

desandro avatar desandro commented on May 24, 2024

Are you completely against using RequireJS for packery

Nope. I have been working on adding AMD support to all the dependencies and working up. This is a work in progress.

See eventie and getSize.

from packery.

gobengo avatar gobengo commented on May 24, 2024

Thanks for the response and the project itself, @desandro. Glad to hear support is coming! My project is here and defines an AMD module that gets access to Packery through assumed global scope. I'll watch this thread and update as I can to load via AMD. https://github.com/gobengo/streamhub-packery

Would you like any help? Perhaps in migrating any deps that you don't author?
Or should I just check back in a certain ETA?

from packery.

desandro avatar desandro commented on May 24, 2024

Just keep watching this tracker.

from packery.

alexyoungs avatar alexyoungs commented on May 24, 2024

Brilliant to hear that AMD support is on the way for such a great library @desandro, thanks!

Have you got any sort of update on how far away it might be? Watching this thread with eager anticipation ;)

from packery.

sabarasaba avatar sabarasaba commented on May 24, 2024

Any news about this ?

from packery.

eabait avatar eabait commented on May 24, 2024

Hi, we payed the licence and really need to support AMD through RequireJS. Is there an ETA for this fix?

from packery.

hjujah avatar hjujah commented on May 24, 2024

Any update on this?

from packery.

bobeagan avatar bobeagan commented on May 24, 2024

++

from packery.

hejhi avatar hejhi commented on May 24, 2024

+1 - would be so nifty to have

from packery.

casoetan avatar casoetan commented on May 24, 2024

+1

from packery.

desandro avatar desandro commented on May 24, 2024

I'm looking for feedback on how to best set up RequireJS dependencies in my components. Help me out! See https://github.com/desandro/requirejs-bower-homework

from packery.

desandro avatar desandro commented on May 24, 2024

Support for RequireJS has been added in v1.1.0. See http://packery.metafizzy.co/appendix.html#requirejs

I realize it's a bit of a pain to install with Bower and set up config, but it's for the best!

Try it out and report back if you have any trouble.

from packery.

desandro avatar desandro commented on May 24, 2024

Good news! 😸 packery.pkgd.js is now being built with RequireJS. This means you can require packery.pkgd.js and not have to worry about getting all the dependencies. Proper docs at packery.metafizzy.co/appendix.html#requirejs


Currently, the RequireJS optimizer outputs packery.pkgd.js with a named module masonry/masonry. This means you need to actually require two modules in order to use Masonry.

requirejs( [
  // require the file
  'path/to/packery.pkgd.js',
  // require the named module
  'packery/js/packery'
  // two parameters, packeryPkg is undefined
  // Packery is the working module
], function( packeryPkg, Packery ) {
  new Packery('#container');
});

One solution is to remove the naming of packery/js/packery

Please chime in if you have a preference either way.

from packery.

jmcgdz avatar jmcgdz commented on May 24, 2024

Sweet! I'll try it this weekend, thank you.

from packery.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.