Babel-Require

JS模块同步加载器
授权协议 BSD
开发语言 JavaScript
所属分类 Web应用开发、 常用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>
        );
    }
}
  • 什么是Babel Babel 是一个 JavaScript 编译器,是一个工具链,主要用于将 ECMAScript 2015+ 版本的代码转换为向后兼容的 JavaScript 语法,以便能够运行在当前和旧版本的浏览器或其他环境中。 用法 在这里会介绍如何将用es2015+写的JavaScript代码转换为能在当前浏览器正常执行的代码。包括两方面:语法转换、功能补充(这里暂时叫这个名字,之后会详细

  • 1.  https://www.babeljs.cn/docs/babel-register 安装 npm install @babel/core @babel/register --save-dev Copy 用法 require("@babel/register"); Copy node 后续运行时所需要 require 进来的扩展名为 .es6、.es、.jsx、 .mjs 和 .js 

  • 一:理解 babel之配置文件.babelrc 基本配置项 1. 什么是babel? 它是干什么用的?    ES6是2015年发布的下一代javascript语言标准,它引入了新的语法和API,使我们编写js代码更加得心应手,比如class,let,for...of promise等等这样的,但是可惜的是这些js新特性只被最新版本的浏览器支持,但是低版本浏览器并不支持,那么低版本浏览器下就需要一

  • 写一个简单的 babel-loader 这里所有的代码都在github上,地址 https://github.com/lihongxun945/my-babel-loader。 这里以 babel-loader 为例,看我们如何写一个自己的loader。首先,我们参考这篇官方教程,虽然写的很粗略,但是我们可以学会写一个简单的loader。 最简单的loader是一个什么都不做,原样返回JS代码的

  • 引言# babel默认只转换新的 JavaScript 语法,比如箭头函数、扩展运算(spread)。 不转换新的 API,例如Iterator、Generator、Set、Maps、Proxy、Reflect、Symbol、Promise 等全局对象,以及一些定义在全局对象上的方法(比如 Object.assign)都不会转译。如果想使用这些新的对象和方法,则需要为当前环境提供一个垫片(poly

  • 过程不详细叙述了,很多报错,经过调试测试,记录下可用版本 先把之前相关的包都卸载,再重装 涉及到的改动文件 package.json "@babel/core": "^7.18.6", "@babel/eslint-parser": "^7.18.2", "@babel/plugin-proposal-class-properties": "^7.18.6", "@

  • babel-core在npm官网中的解释是 Babel compiler core. 也就是Babel编译器的核心,因此意味着如果要使用babel-loader进行es6的转码你首先必须得安装babel-core npm install --save-dev babel-core babel-core安装了就行,无需手动配置和引入。 搞懂了babel-loader和babel-core的关系,那b

  • 解决babel-plugin-dynamic-import-node引发的问题 前言 我们项目中使用的是 vue-admin-template 的后台框架。在做页面权限控制的时候,使用的是router.addRoutes 进行菜单以及页面的按需加载。 产生的问题 问题一:import 表达式写法直接报错 表现: /src/store/modules/permission.js做页面的权限处理,我们

 相关资料
  • 我对RequireJS非常陌生,在编写QUnit到源代码时遇到了困难,源代码具有使用RequireJS动态加载模块的逻辑。 下面是源代码:factory/Factory.js * 运行 QUnit 时,模块“page/something”永远不会加载,并且永远不会调用回调。我在这里错过了什么吗?感谢您的回复。 **QUnit工厂/FactoryTests.js* *test-require-con

  • 问题内容: 感谢Dan Wahlin的精彩文章,我设法实现了Angular的控制器和服务的延迟加载。但是,似乎没有一种干净的方法来懒惰加载独立的模块。 为了更好地解释我的问题,假设我有一个没有RequireJS的应用,其结构如下: 这是在Plunker中带有RequireJS的示例应用程序:http ://plnkr.co/aiarzVpMJchYPjFRrkwn 问题的核心是Angular不允许

  • 任何一门语言在大规模应用阶段,必然要经历拆分模块的过程。便于维护与团队协作,与java走的最近的dojo率先引入加载器,早期的加载器都是同步的,使用document.write与同步Ajax请求实现。后来dojo开始以JSONP的方法设计它的每个模块结构。以script节点为主体加载它的模块。这个就是目前主流的加载器方式。 不得不提的是,dojo的加载器与AMD规范的发明者都是james Burk

  • 问题内容: 是否可以异步加载Node.js模块? 这是标准代码: 但是我想写这样的东西: 有没有办法做到这一点?还是有一个很好的理由为什么不支持回调? 问题答案: 尽管是同步的,并且Node.js并未提供现成的异步变体,但是您可以轻松地自己构建一个变体。 首先,您需要创建一个模块。在我的示例中,我将编写一个模块,该模块从文件系统异步加载数据,但是当然是YMMV。因此,首先,使用老式的,不需要的同步

  • 我正在构建我的第一个VueJs应用程序,我想异步加载我的模板。在我们的框架中,我们将模板存储在数据库中,这就是为什么。它一直在工作,直到我的模板中有一些嵌套的dom元素,而没有任何数据绑定到它为止。所以我的Vuejs就像: 这是工作时,我的模板是这样的: 但如果是这样的话: 我明白了 [Vue warn]:呈现中出错:“TypeError:无法读取未定义的”(在中找到)的属性“0” 但如果是这样的

  • 本文向大家介绍使用RequireJS库加载JavaScript模块的实例教程,包括了使用RequireJS库加载JavaScript模块的实例教程的使用技巧和注意事项,需要的朋友参考一下 js通过script标签的默认加载方式是同步的,即第一个script标签内的js加载完成后,才开始加载第二个,以此类推,直至js文件全部加载完毕。且js的依赖关系必须通过script的顺序才能确保;而在js加载期

  • 我正在尝试使用从多个位置加载模板。这个项目是使用开发的。 我有两个maven项目: > 我的网站:maven的主要项目,包含自定义模板,例如WEB-INF/ftl/landing/login。ftl 通用模板:包含位于WEB-INF/ftl的通用freemarker模板,例如WEB-INF/ftl/landing/login。ftl 例如,Freemarker的想法是在“我的网站”中搜索登陆/登录

  • 模块是存在远程服务器上的,因此需要一个特殊的加载器来加载这些已经定义好的模块。 目前,根据模块化规范,对应的模块加载器有: CMD 直接执行:coolie.js 直接执行:Sea.js 链接: 如何实现一个 CMD 模块加载器 sea.js 与 RequireJS 的异同 AMD 直接执行:RequireJS。 链接: Javascript模块化编程(一):模块的写法 Javascript模块化编