【问题标题】:How to integrate ES6 Module syntax in RequireJS project如何在 RequireJS 项目中集成 ES6 Module 语法
【发布时间】:2018-09-12 20:46:00
【问题描述】:

我正在寻找一种在我当前的 RequireJS 项目中使用 ES6 模块(导入/导出)语法的方法。 我可以直接在最近的浏览器中运行我的项目,无需构建或 Babel 转换。 我使用 r.js 和 Babel 构建我的项目仅用于生产。

我们想开始构建 ES6 模块并将其与 requireJS 一起使用。 有没有办法做到这一点?

注意:RequireJS 不会加载用 ES6 编写的依赖项。

【问题讨论】:

    标签: javascript requirejs babeljs amd es6-modules


    【解决方案1】:

    是的,RequireJS 应该兼容 Babel 的 es2015-modules-umd 插件。因此,您应该能够在开发过程中使用支持模块的现代浏览器在文件中使用importexport,然后使用带有该插件的r.js 和Babel 进行生产。

    【讨论】:

    • 问题是RequireJS没有加载用ES6写的依赖。即使在现代浏览器中
    • @Acidnuk:当 RequireJS 看到它时,它已经不在 ES6 中了(至少,不是 import/export 部分)。这就是 Babel 在那个阶段参与的原因,将 import/export 转换为 require/define 调用。
    • 是的,它实际上正在生产中。但是我的应用程序在开发过程中不会工作,对吧?
    • @Acidnuk:这就是为什么我说“...使用支持模块的现代浏览器...” 例如,最新版本的 Chrome 就是这样做的;我认为最新的 Safari 也是如此(实际上 Safari 在他们的预发布分支中首先到达那里)。您使用<script type="module" src="main.js"></script> 引导,然后main.js 可以使用import { foo } from "./foo.js"; 等。所以这就是发展。然后对于测试和生产,你通过 Babel 运行它,可能使用 Require 等。人。构建一个组合的、缩小的文件,等等。
    • 好的,我明白了。抱歉,如果我最初的问题不够精确。这意味着我无法通过 requireJS 获得 es6 模块。喜欢:define (["myES6Module.js"], function () {});
    猜你喜欢
    • 2021-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-08
    • 1970-01-01
    • 2014-03-18
    相关资源
    最近更新 更多