美文网首页vue-3.x
1.04-前端JS模块打包

1.04-前端JS模块打包

作者: Jimmy_L_Wang | 来源:发表于2018-09-28 10:05 被阅读13次

模块化开发的好处毋庸置疑。遗憾的是,尽管在JavaScript社区已经出现了若干种 模块规范,例如:CommonJS、AMD或者ES2015,但是到目前为止,还没有任何 一个浏览器能够很好地支持任何一种模块化规范。

好消息是存在一些模块打包工具,例如webpack、browserify、requirejs 或者systemjs,都可以让我们在浏览器支持之前,就能够采用任何一种模块规范, 以模块化的方式来进行开发,需要调试或发布时再打包成浏览器支持的格式。不过这意 味着,我们的开发流水线又要增加一个新的环节 —— 模块打包:

module-bundler.png

前端模块打包工具最主要的任务是解析模块之间的依赖关系,并通过拦截模块间的 引用(例如CommonJS的require、ES2015的import、AMD的define)来实现 浏览器中单一JS文件内的多模块化访问

将.vue文件转化为CommonJS模块:vue2jsm

vue2jsm只是对vue2js做了简单修改:遵循CommonJS模块规范,使用module.exports 输出了整定后的组件代码。

轻量的CommonJS打包器:cjspack

我们实现了一个简单的模块打包器cjspack,用来将CommonJS模块打包为单一文件 供浏览器使用:

~$ ./cjspack ./main.js ./bundle.js
all modules bundled for entry : ./main.js

cjspack是一个node.js小应用,它的原理很简单:

  1. 利用Esprima进行源文件语法分析,从入口模块开始,遍历所有的require调用,建立模块依赖树,组织模块映射表
  2. 生成模块编号与对应源代码的映射表
  3. 生成require拦截函数,在其中利用模块映射表执行目标模块源代码
  4. 生成入口代码

相关文章

  • 1.04-前端JS模块打包

    模块化开发的好处毋庸置疑。遗憾的是,尽管在JavaScript社区已经出现了若干种 模块规范,例如:CommonJ...

  • webpack学习笔记(踩坑笔记)

    认识webpack webpcak是基于JS应用的前端模块化打包工具,强调模块化(核心)和打包。流行打包工具:we...

  • webpack安装

    webpack是当前前端最热门的前端资源模块化管理和打包工具。 安装webpack 首先要安装Node.js,No...

  • webpack

    WebPack是基于node.js开发的模块打包机(前端常常借助 node帮助前端实现工程化,很多工具是基于nod...

  • js逆向--webpack打包怎么办?

    webpack打包是前端js模块化压缩打包常用的手段。同时对于后端的爬虫调试有着一下困扰。简单的认识下:https...

  • webpack打包原理的思考

    webpack 是一个前端资源加载/打包的工具。 其根据模块的依赖关系进行静态分析,找到js模块以及一些浏览器不能...

  • 前端构建工具&&前端模块化工具&&前端架构工具&&前端类库

    前端自动化构建工具 webpack 是一个打包模块化的js的工具,在webpack里一切文件都是模块,通过load...

  • webpack1——概念

    1. Webpack是什么Webpack是前端资源加载,JS打包的工具,可以将模块的依赖关系进行静态分析,并根据规...

  • webpack学习

    何为webpack 简单来说,webpack是实现 js 能够在浏览器模块化的一个前端打包工具。(来自官网-->)...

  • webpack01-介绍

    webpack介绍 Webpack是一个前端资源的打包工具,它可以将js、image、css等资源当成一个模块进行...

网友评论

    本文标题:1.04-前端JS模块打包

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