网站流量查询工具,公司招牌制作价格,手机网站建设哪家公司好,网络外包运营公司多package项目管理 1 #xff09;多package项目管理概述
通常来说#xff0c;当一个项目变大了以后#xff0c;我们就要对这个项目进行拆分在前端当中#xff0c;对于项目进行拆分的方式#xff0c;通常把它称之为javascript包管理需要使用一个工具叫做 npm (Node Packag…多package项目管理 1 多package项目管理概述
通常来说当一个项目变大了以后我们就要对这个项目进行拆分在前端当中对于项目进行拆分的方式通常把它称之为javascript包管理需要使用一个工具叫做 npm (Node Package Management)它是使用nodeJS来对包进行一个管理用了这个包管理以后项目就可以以大化小把一个复杂的项目拆分成若干个小的项目如何把一个大的项目进行一个拆分这里就用到 workspaces 和 lerna 这两个特性其实 lerna 是更早出现的一个特性, 而 workspace 是 npm 7 以后默认出现一个特性lerna 和 workspace 都是解决复杂项目管理的, 即多 package 管理了解如何利用 lerna 和 worspace 的这个特性去完成项目的创建依赖的安装本地调试还有项目发布之前也谈到过Lerna 采用 Yargs 作为脚手架框架
2 脚手架架构 这是一般脚手架的整体架构最下面一层是标准层也就是说我们整个今天前端能发展成这样它是由一些若干条标准而生成的其中最重要的标准就是ECMA和Module模块化ECMA 它的一个核心产出其实就是javascript这个开发语言而模块化它的核心产出,目前还在用的就是CommonJS和ES Module这样2个模块化的标准基于ECMA和module模块化, 产生了 nodejs 框架, Nodejs框架其实核心包含三个部分 第一个是 V8引擎它的用途是用来去做javascript开发语言的一个编译和运行包括输出最终的一个运行结果第二个是 internal module 主要指向 nodejs 很多的内置库包括fs文件处理库, path 路径库等等第三个是 一个node的可执行文件由这样的几个部分组成这个就是Node.js而 Nodejs 之上, 就会生成一个包括管理工具叫 npm 我们每个前端项目今天都在去使用 npm, 而 npm 在7版本之后默认就会附带一个特性叫做 workspace这个 workspace 就是用来做多package 复杂项目管理用的少于7版本的时候想做复杂项目管理的时候就要用lernerLerna它是基于 nodejs的 npm 之上生成的一个自己开发的一个包管理工具这个工具最主要的用途就是做很多个小模块之间拼成一个大的项目做这个大的项目管理就是 Lerna在 npm 7版本之前我们就会使用 Lerna 去做包管理今天的 Lerna 最新版本已经到 8.1.2, 同时它已经基于npm的 workspace 特性去进行了重构和改造所以今天依然可以用Lerna来做包管理它可以帮我们去省略到很多操作的步骤除此之外像 npm 上面还有一些常用的工具像webpack这些, Lerna 和 webpack 是属于同一层的这个工具而我们自己的脚手架是基于这些库之上也就是说我们自己的脚手架会基于Lerna 去进行一个构建构建的时候它核心是会分为6个第一个包是 cli-core 包含脚手架中核心的一个内核基于这个内核去开展我们具体的业务也就是说上面5个业务只是其中五个功能如果未来我们要开发更多的脚手架的时候只要再往里面横向的去进行扩充就可以了这就是基于 Lerna 它架构的一个好处它的横向扩展性很强脚手架的内核不变更的情况下可以非常轻易的去添加出新的功能否则, 我们每一个脚手架都要重新开发一套全新的代码然后去做发布去做部署和运行, 整个过程是比较复杂的