├── .npmignore
├── .gitignore
├── example
├── es-module-dep.js
├── another-module.js
├── es-module.js
└── example.html
├── src
├── babel-browser-build.js
└── browser-es-module-loader.js
├── rollup.config.js
├── package.json
└── README.md
/.npmignore:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | dist
--------------------------------------------------------------------------------
/example/es-module-dep.js:
--------------------------------------------------------------------------------
1 | export default 42;
--------------------------------------------------------------------------------
/example/another-module.js:
--------------------------------------------------------------------------------
1 | console.log('another module');
--------------------------------------------------------------------------------
/example/es-module.js:
--------------------------------------------------------------------------------
1 | export default function() {
2 | return import('./es-module-dep.js');
3 | }
4 |
--------------------------------------------------------------------------------
/src/babel-browser-build.js:
--------------------------------------------------------------------------------
1 | window.babel = require('babel-core');
2 | window.babelPluginTransformES2015ModulesSystemJS = require('babel-plugin-transform-es2015-modules-systemjs');
3 | window.babelPluginSyntaxDynamicImport = require('babel-plugin-syntax-dynamic-import');
4 |
--------------------------------------------------------------------------------
/rollup.config.js:
--------------------------------------------------------------------------------
1 | import nodeResolve from 'rollup-plugin-node-resolve';
2 |
3 | export default {
4 | entry: 'src/browser-es-module-loader.js',
5 | format: 'umd',
6 | moduleName: 'BrowserESModuleLoader',
7 | dest: 'dist/browser-es-module-loader.js',
8 |
9 | plugins: [
10 | nodeResolve({
11 | module: false,
12 | jsnext: false,
13 | })
14 | ],
15 |
16 | // skip rollup warnings (specifically the eval warning)
17 | onwarn: function() {}
18 | };
--------------------------------------------------------------------------------
/example/example.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
14 |
15 |
23 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "browser-es-module-loader",
3 | "version": "0.4.1",
4 | "description": "Demonstrates ES module loading in the browser",
5 | "main": "dist/browser-es-module-loader.js",
6 | "author": "Guy Bedford",
7 | "repository": {
8 | "type": "git",
9 | "url": "https://github.com/ModuleLoader/browser-es-module-loader"
10 | },
11 | "license": "MIT",
12 | "devDependencies": {
13 | "babel-core": "^6.22.1",
14 | "babel-plugin-syntax-dynamic-import": "^6.18.0",
15 | "babel-plugin-transform-es2015-modules-systemjs": "^6.22.0",
16 | "browserify": "^13.1.0",
17 | "es-module-loader": "^2.0.0",
18 | "rollup": "^0.34.7",
19 | "rollup-plugin-node-resolve": "^2.0.0"
20 | },
21 | "scripts": {
22 | "build": "mkdir -p dist && browserify src/babel-browser-build.js > dist/babel-browser-build.js && rollup -c",
23 | "prepublish": "npm run build"
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | Browser ES Module Loader
2 | ===
3 |
4 | Loads ES modules in the browser via Babel just like the WhatWG HTML specification for modules.
5 |
6 | Also supports the `
32 |
33 |
34 |
35 |
36 |
37 |
38 |
49 |
50 |
51 |
59 | ```
60 |
61 | LICENSE
62 | ---
63 |
64 | MIT
65 |
--------------------------------------------------------------------------------
/src/browser-es-module-loader.js:
--------------------------------------------------------------------------------
1 | import RegisterLoader from 'es-module-loader/core/register-loader.js';
2 | import { InternalModuleNamespace as ModuleNamespace } from 'es-module-loader/core/loader-polyfill.js';
3 |
4 | import { baseURI, global, isBrowser } from 'es-module-loader/core/common.js';
5 | import { resolveIfNotPlain } from 'es-module-loader/core/resolve.js';
6 |
7 | if (!window.babel || !window.babelPluginTransformES2015ModulesSystemJS || !window.babelPluginSyntaxDynamicImport)
8 | throw new Error('babel-browser-build.js must be loaded first');
9 |
10 | var loader;
11 |
12 | //