Skip to content

Instantly share code, notes, and snippets.

@mgol
Last active October 12, 2023 10:34
Show Gist options
  • Star 21 You must be signed in to star a gist
  • Fork 5 You must be signed in to fork a gist
  • Save mgol/af95c1358d4ca9f2d45db4f0c55a74a4 to your computer and use it in GitHub Desktop.
Save mgol/af95c1358d4ca9f2d45db4f0c55a74a4 to your computer and use it in GitHub Desktop.
jQuery ES6 modules example usage

jQuery source is now authored using ES6 modules. It's possible to use them directly in the browser without any build process.

To test it locally, first clone the jQuery repository:

git clone git@github.com:jquery/jquery.git

Then, write the following index.html file:

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title>jQuery ES6 modules test page</title>
</head>
<body>
  <div id="message"></div>
  <script type="module">
	  import $ from "./jquery/src/jquery.js";
	  $('#message').text('Hi from jQuery!');
  </script>
</body>
</html>

Afterwards, run a local HTTP server in the current directory:

npx http-server -p 3000

Then open http://localhost:3000 in your web browser and see jQuery did its work.

@ihor-lev
Copy link

Is the "import" is working in browsers directly now? No compilation or similar stuff?

@marpstar
Copy link

@ikysylevych looks like everything except for IE11: https://caniuse.com/#feat=es6-module

@ihor-lev
Copy link

@marpstar: thanks! awesome! didn't know that.

@mgol
Copy link
Author

mgol commented Nov 20, 2019

The only thing you need to remember is that browsers require either a full path (e.g. a URL) or a relative path to the file including its extension. This is different to most bundlers which accept both forms.

The jQuery source does use extensions so it works natively.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment