首页 > 解决方案 > CommonJS 或 ES6 模块的意义何在?

问题描述

这对我来说听起来很愚蠢,但我真的没有答案。

如果您可以通过脚本标签将多个 js 文件连接到 html 以便它们充当模块(共享相同的范围),那么使用 ES6 模块或 CommonJS(在使用 browserifiy 的浏览器中)有什么意义?

标签: javascript

解决方案


在规模不错的 Web 应用程序中,您必须考虑到不止一个开发人员在从事该项目,因此关注点分离是开发可维护应用程序的关键要素之一,让我们来看看下一个假场景:

您的 Web 应用程序中有一个名为 library.js 的文件。ES2015 模块语法

    export function calculatesquareArea(object) {
        // code that calculates area
    }
    export function calculateVolume(object){
        // code that calculates volume
    }

现在我们通过执行以下操作将此模块导入到我们的代码中:

import { calculatesquareArea } from 'library'
// We log the output of the execution of calculatesquareArea
console.log( calculateSquareArea(object))

您会立即注意到,在我的模块中,我有 2 个函数,但我决定只导入一个,因为当时我只需要使用它。也许这是一个愚蠢的例子,但您可以利用 CommonJS 或 ES6 模块的模块化特性来描绘代码重用。

这里有一篇关于 CommonJS 和 ES2015 模块之间主要区别的更详细的文章

希望这会有所帮助。


推荐阅读