美文网首页
前端模块化-2、CommonJS

前端模块化-2、CommonJS

作者: Aleph_Zheng | 来源:发表于2017-06-16 16:23 被阅读16次

CommonJS的历史渊源: nodejs项目的诞生,将javascript语言用于服务器编程。由于服务器端开发十分复杂,需要与OS以及其他应用程序互动,模块化的理念对服务器端开发是必需的。而nodejs的模块系统,就是参照CommonJS规范实现的

@因此我理解CommonJS即为服务器端模块的规范。 CommonJS的规范: 根据CommonJS规范,一个单独的文件就是一个模块。加载模块使用require方法,该方法读取一个文件并执行,最后返回文件内部的exports对象。下面就是一个简单的模块文件a.js

//a.js 模块定义 
var name = 'Bryant';
var firstname = 'Kobe ';
function printName() {
    console.log(name);
}

function printFullName(){
    console.log(firstname + name);
}

###方法1:
//输出的内容用module.exports表示
module.exports = {
    printName: printName,
    printFullName: printFullName
}

###方法2:
//输出内容用exports.xxx表示。
exports.printFullName = printFullName;

//b.js 模板引用
###方法1:
var nameFunction= require('./a');
nameFunction.printFullName();

###方法2
var  nameFunction  = require('./a').printFullName;
nameFunction();

输出结果:

image.png

注意:b模板虽然定义了变量var firstname = 'Koby ';,但是由于各自命名的独立性,所以如果a.js没有firstname,那么执行nameFunction.printFullName()时,输出结果时会报错。

//定义模板a.js
var name = 'Bryant';
// var firstname = 'Kobe ';
function printName() {
   console.log(name);
}

function printFullName(){
   console.log(firstname + name);
}

module.exports = {
   printName: printName,
   printFullName: printFullName
}

//加载模板b.js
var nameFunction = require('./a');
var firstname = 'Koby ';
nameFunction.printFullName();

输出结果:

image.png

CommonJS的使用虽然简单方便,在服务器端进行同步加载也不是问题(直接从本地读取),但是在浏览器端,我们是否也有相同或者类似的工具呢?

to be continued...

相关文章

  • 关于前端模块化开发

    关于前端模块化开发 1 前端中有哪些模块化开发的规范以及实现方案 2 模块化的开发的好处 3 CommonJS

  • 前端模块化

    什么是前端模块化? 前端为什么需要模块化? CommonJS、AMD、ES6、CMD区别是什么? 一、什么是模块化...

  • 前端模块化开发

    前端模块化开发 常见的三大模块化框架。 CommonJS: 1.根据CommonJS规范,一个单独的文件就是一个模...

  • 前端模块化-2、CommonJS

    CommonJS的历史渊源: nodejs项目的诞生,将javascript语言用于服务器编程。由于服务器端开发十...

  • ES Modules 中的 __dirname 和 __file

    模块化发展 早期,前端这块没有模块化系统,而 Node.js 需要模块化所以只能一直使用 CommonJS 标准凑...

  • node学习2

    什么是CommonJs? CommonJs就是模块化的标准,nodejs就是CommonJs(模块化)的实现 No...

  • 前端知识体系4.前端工程化2.其它

    本文目录 1.es6的模块管理 与 commonjs 的对比 2.简单介绍下前端模块化规范:amd,cmd,com...

  • 容易混淆的commonjs、AMD 和CMD

    1,三者都是对前端模块化,标准化的实践和取得的成效 2,commonJS是应用于后端的js模块化,是同步的,因为后...

  • 前端模块化类(1)

    前端模块化规范: (一) commonJs ①下载git和node ②下载使用browserify对主要文件(ap...

  • Seajs使用实例入门介绍

    seajs是啥,可以看看这篇前端模块化(CommonJs,AMD和CMD)点我点我--项目源码地址:https:/...

网友评论

      本文标题:前端模块化-2、CommonJS

      本文链接:https://www.haomeiwen.com/subject/ujrmqxtx.html