umd-free-zone
v0.1.3
Published
Creates a define and exports free zone for your UMD scripts to safely register globally
Downloads
23,352
Maintainers
Keywords
Readme
umd-free-zone
umd-free-zone is meant to prevent your UMD-compatible scripts from falling for unwanted global AMD and CommonJS shims.
Just add umd-free-zone/start.js before your scripts and umd-free-zone/end.js after them.
This will ensure your scripts register globally.
Example
Imagine you want to load the UMD compatible React from unpkg
and intend for it to become a global (window.React
).
Yet, you have an evil Mailchimp script that brutally exports a global define
function, and you can't guarantee your React will load before the nasty AMD leak.
umd-free-zone
to the rescue! Just add it before and after the scripts you want to become global.
Bad:
React will fall for the alien global define
.
// Nasty script that globally defines a `define` function
<script src="https://downloads.mailchimp.com/js/signup-forms/popup/embed.js"></script>
<script src="https://unpkg.com/[email protected]/umd/react.production.min.js"></script>
<script> window.React // undefined! Ouch. </script>
Good:
Wrap your scripts in umd-free-zone
start and end:
// Nasty script that globally defines a `define` function
<script src="https://downloads.mailchimp.com/js/signup-forms/popup/embed.js"></script>
<script src="https://unpkg.com/[email protected]/start.js"></script>
<script src="https://unpkg.com/[email protected]/umd/react.production.min.js"></script>
<script> window.React // undefined! Ouch. </script>
<script src="https://unpkg.com/[email protected]/end.js"></script>
// The leaky AMD works as usual from here onwards, if you want it to.