├── .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 | //