代码之家  ›  专栏  ›  技术社区  ›  Panu Logic

如何创建一个ES6模块,它不会在旧浏览器上引起错误?

  •  0
  • Panu Logic  · 技术社区  · 6 年前

    在我的js文件中,我有以下语句,允许支持ES6的浏览器从包含函数“cisf”的文件中导入该函数:

    export function cisf ()
    { return 123;
    }
    

    有没有办法使es6export语句有条件,这样它就不会在旧浏览器上引起错误,但仍然允许新浏览器将代码作为ES6模块加载?

    我感兴趣的只是确保我不会在(相对较新的)不符合ES6的浏览器上引起错误,而不是老的浏览器如何访问相同的代码,因为它们可以以ES6之前的方式获取代码。

    我特别尝试避免产生和维护两个版本的文件被加载。如果这样一个模块也可以加载到Node.js上,而不必创建不同版本的文件,那将是一个不错的额外功能。

    编辑:我特别想知道它是否可以做没有巴贝尔和/或网页包或类似的,在纯Javascript。

    2 回复  |  直到 6 年前
        1
  •  2
  •   Bergi    6 年前

    我假设上述情况会在一些较旧的浏览器上导致错误。不是吗?

    不,不会的。旧浏览器不理解 <script type="module">

        2
  •  2
  •   xeiton    6 年前

    在ES6/ES7中创建模块(或编写代码)时,如果不将其传输到在旧浏览器中工作的ES5,是绝对不可能的。 你必须用babel来编译代码。甚至不要浪费时间去寻找解决方法。

    作为最佳行业实践,您应该以ES5的形式发布最终捆绑代码(至少在所有旧浏览器都没有更多用户之前)