目录

  • 1. 简介
  • 2. CommonJS规范
  • 3. ES6模块化规范
    • 写法一
    • 写法二(推荐)

1. 简介

随着网站逐渐变成”互联网应用程序”,嵌入网页的Javascript代码越来越庞大,越来越复杂。

Javascript模块化编程,已经成为一个迫切的需求。理想情况下,开发者只需要实现核心的业务逻辑,其他都可以加载别人已经写好的模块。但是,Javascript不是一种模块化编程语言,它不支持”类”(class),包(package)等概念,也不支持”模块”(module)。

因此引入了两种模块化规范:

  • CommonJS模块化规范
  • ES6模块化规范

2. CommonJS规范

每个文件就是一个模块,有自己的作用域。在一个文件里面定义的变量、函数、类,都是私有的,对其他文件不可见。

CommonJS 使用 exports 和 require 来导出、导入模块

项目结构:

首先创建四则运算.js,作为工具类来使用,其中定义四个方法,然后导出所有方法

//四个方法
const sum = function (a, b) {return a + b
}
const sub = function (a, b) {return a - b
}
const mul = function (a, b) {return a * b
}
const div = function (a, b) {return a / b
}//导出
// module.exports = {//     sum: sum,
//     sub: sub,
//     mul: mul,
//     div: div
// }//可简写成
module.exports = {sum,sub,mul,div
}

然后创建test.js引入上述模块测试

const fun = require('./四则运算.js');console.log(fun.sum(1,2));
console.log(fun.sub(1,2));
console.log(fun.mul(1,2));
console.log(fun.div(1,2));

运行程序测试


3. ES6模块化规范

ES6使用 exportimport 来导出、导入模块。

写法一

项目结构:

首先创建工具.js,作为工具类来使用,其中定义并导出两个方法

export function get(){console.log("获取");
}export function save(){console.log("保存");
}

然后创建工具.js,用来导入上述方法并测试

//导入方法
import {get,save} from './工具.js';get();
save();

运行测试:发现报错了

这是因为nodejs默认不支持es6的import语法,我们需要用Babel转换成ES5语法再执行

初始化项目成一个nodejs项目

npm init -y

编写.babelrc配置文件

{"presets": ["es2015"],"plugins": []
}

然后安装转码器,在项目中安装

npm install --save-dev babel-preset-es2015


然后就可以进行转码,我们将在项目根目录下创建src目录,然后将测试.js工具.js移入,再输入如下命令转码

babel src -d dist

然后打开新生成dist/测试.js运行测试

成功显示结果!


写法二(推荐)

工具.js修改为:

export default {get() {console.log("获取");},save() {console.log("保存");}
}

测试.js修改为:

//以对象形式导入
import tool from './工具.js';tool.get();
tool.save();

然后同样进行转码执行即可

前端模块化(CommenJS规范、ES6规范)相关推荐

  1. es6 混合commjs_前端模块化——CommonJS、ES6规范

    什么叫模块化? 对于一个复杂的程序,将其按照一定的规范封装成几个文件块,每一块向外暴露一些接口,但是块的内部数据是私有的,块与块之间通过接口通信.这个过程称为模块化. 模块化的好处 CommonJS ...

  2. java-初识大前端Node.js、ES6、Npm、Babel、模块化规范、WebPack、Vue-element-admin本地安装问题及解决、Git安装及配置、uni-app

    VS code安装 安装成功 配置自动补齐Emment Node.js node.js下载网址: http://nodejs.cn/ 安装成功! 概念 Node.js发布于2009年5月,由Ryan ...

  3. 浅析:前端模块化开发规范

    浅析:前端模块化开发规范 早期的模块化解决方案 NameSpace:命名空间模式 匿名闭包:IIFE模式 模块模式:IIFE+依赖传参 ES6之前的模块化解决方案 CommonJS模块化规范 AMD模 ...

  4. 【JavaScript高级】模块化规范「一文让你彻底搞懂前端模块化规范 区别」

    在JS最早出现的时候,是为了实现一些简单的功能,但随着浏览器的不断发展,对于JS的要求也越来越高,需要实现一些较为复杂的功能.这个时候开发者为了维护方便,会把不同功能的模块抽离出来写入单独的 js 文 ...

  5. JS模块化(CommomJS规范和ES6规范)

    目录标题 简介 CommonJS规范 ES6模块化规范 简介 随着网站逐渐变成"互联网应用程序",嵌入网页的Javascript代码越来越庞大,越来越复杂. Javascript模 ...

  6. 前端模块化CommonJS、AMD、CMD、ES6

    一.前端模块化 什么是模块化?为什么前端需要模块化? js代码量激增,放在同一个文件里面,不容易维护,而且牵一发而动全身. 这时候就需要将代码按照逻辑放在不同的文件里面,按照一定的语法规则,遵循特定的 ...

  7. [ES6] 细化ES6之 -- 前端模块化

    前端模块化 前言 前端开发领域发展到目前阶段: 零件化 - 最终呈现给用户是一个完整的产品(由各个零件组成的) 降低生产成本 – 多人协作(每个人各司其职) 降低使用成本 - 各个零件之间是低耦合的 ...

  8. 模块化 AMD与CMD 规范

    JavaSript模块规范 - AMD规范与CMD规范介绍 2014-02-19 13:12:01 分类: JavaScript JavaSript模块化 在了解AMD,CMD规范前,还是需要先来简单 ...

  9. 7.前端开发规范 eslint-jslint规范

    前端的开发规范 1.目录构建的规范 命名原则: 简洁 比如: src 源代码 img 图片资源 js JavaScript脚本 dep 第三方依赖包 不使用复数 比如: 不使用 imgs docs 根 ...

最新文章

  1. Cell二连发 | 广东CDC/耶鲁大学利用纳米孔测序揭示中/美新冠病毒基因组流行病学传播规律...
  2. 《精通Nginx》——2.3 使用include文件
  3. 第10章 部署Exchange2010 部署边缘服务器
  4. python0b1011_1011 A+B 和 C (15分)Python参考答案
  5. mysql msql_MySQL数据库学习二 MSQL安装和配置
  6. 【Flink】Flink 写入到 CSV BucketingSink 的使用方法
  7. php 5.5 编译安装,php5.5.38编译安装
  8. 《CUDA C编程权威指南》——2.4节设备管理
  9. linux shell脚本判断文件或文件夹是否存在循环操作
  10. 我的世界服务器光影文件夹,我的世界光影怎么开?中国版介绍
  11. 王国纪元服务器不稳定,王国纪元闪退怎么解决 游戏闪退解决方法
  12. 中国经济社会大数据研究平台——国内统计数据
  13. 联想V480(扬天) EI Capitan 完美驱动教程
  14. amazon - FileZilla 连接 amazon云服务器
  15. 96微信编辑器html在哪里,96微信编辑器怎么把文章生成链接?
  16. dell笔记本外接显示器_笔记本连接显示器怎么设置【图文教程】
  17. 关于个人目标的一篇博客
  18. 路由器,交换机的存储介质的区别
  19. SaaSBase:什么是INFOR ERP?
  20. android陀螺仪实现背景移动demo,基于HTML5陀螺仪实现移动动画效果

热门文章

  1. 复习笔记:科学技术史
  2. ArcGIS engine中Display类库——Display(一)
  3. 水清冷冷:PSCC2019/PSCC2020安装教程和学习技巧(附工具)
  4. 【小萝莉说Crash】第二期:Unrecognized selector xxx 之 ForwardInvocation
  5. 一篇挺有意思的文章(转自CSDN)
  6. python音乐下载_python 音乐下载演示源代码
  7. 在iphone中添加日历库kal
  8. 微信企业支付 服务器根证书,微信支付服务器证书根ca证书有什么用
  9. 项目一:使用python tkinter模块做简单的计算器
  10. 以史为镜,认知计算机操作系统