CommonJS或ES6模块的意义是什么?

埃里克·拉塞森(Eric Larsetson)

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

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

路易斯·马尔多纳多

在大小合适的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模块之间的关键区别更详尽的文章在这里

希望这能有所帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

javascript ES6中的匿名块是什么?

ES6导入的定义执行顺序是什么?

ES6箭头功能中的“ this”指的是什么?

用于导入commonjs / amd模块的新es6语法,即`import foo = require('foo')`

如何禁用:[js]文件是CommonJS模块;可以将其转换为ES6模块

使用同步语法在运行时导入commonJS,AMD和ES6模块

TypeScript 1.5:CommonJS'export ='的ES6模块默认导入(仅.d.ts问题?)

定位到es6或更高版本时,无法将外部模块编译为amd或commonjs

如何使用Babel在ES6中编写与CommonJS,AMD和Browser兼容的模块?

es6模块转换为commonjs,节点和谐标志下带有打字稿

带ES6模块的TypeScript的最佳方法是什么?

ES6模块的“导入”正式与CommonJS和AMD兼容吗?

使用ES6导入JSNLog的正确语法是什么?

ES6中的getter方法在ES6之前的替代方案是什么

支持ES6模块语法和CommonJS

有关将commonJS和ES6模块系统混合的几个问题

当项目使用CommonJS模块时,将create-react-app导入模块作为ES6模块

在ES6中导入和使用d3及其子模块的正确方法是什么?

es6是否可以导入commonjs模块?

如何确定某个特定模块是CommonJS模块还是ES6模块?

CommonJS require与ES6导入差异

如何使用CommonJS模块将Webpack和ES6与依赖项一起使用?

ES6模块的module.exports等价于什么?

ES6模块,什么算作首次导入?

如何发布带有commonjs和es6版本的NPM模块?

导入es6模块的最佳方法是什么?

ES6中的子模块是什么?

使用模块的目的或意义是什么?

是否可以在 Node.JS 命令行程序中同时使用 CommonJS 和 ES6 模块?