Babel-Require - JS模块同步加载器


BSD
跨平台
JavaScript

软件简介

Babel-Require是一个CMD规范的js模块同步加载器,其本质是一个类似NodeJS的”require()”函数。

在浏览器中使用Babel动态编译运行ECMScript2015,如果包含import关键字则会报错,此函数库设计用于解决该问题。让开发者不用编译即可直接在浏览器中import
ECMScript2015 js模块, 目前支持Babel5.x。

使用同步AJAX实现,单线程下载,只能用于开发调试, 当import文件较多时会稍慢。

在线例子:

http://wmlgl.github.io/babel-require/examples/

配置:

加载模块时,如果配置了jsx,并且该模块属于jsx项配置的目录下,则加载”.jsx”文件,否则加载”.js”文件。 Config exmaple:

<script type="text/javascript">
require.config({
    jsx: ["app"]
});
</script>
<script type="text/babel">
    // 会加载"app/app.jsx"
    // Will be load "app/app.jsx"
    import App from "app/app";

    // 会加载"lib/hello.js"
    // Will be load "lib/hello.js"
    import Hello from "lib/hello";
</script>

示例:

<!DOCTYPE html><html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Examples</title>
        <script src="lib/react/react.js"></script>
        <script src="lib/react/react-dom.js"></script>
        <script src="lib/babel-core/browser.js"></script>
        <script src="lib/babel-core/browser-polyfill.js"></script>
        <script src="dest/babel-require.js"></script>
    </head>
    <body>
        <div id="container">loading...</div>
    </body></html><script type="text/babel">
    import App from "app/app";

    ReactDOM.render(<App/>, document.getElementById('container'));</script>
// file: app/app.jsx
import Test1 from './loadtest1/test1'
import Test2 from './loadtest2/test2'

export default class App extends React.Component {
    render () {
        return (
            <div>
                Hello App!
                <Test1 />
                <Test2 />
            </div>
        );
    }
}