多个前端项目中公共组件使用方案(npm包方式)

简介: 多个前端项目中公共组件使用方案(npm包方式)

1、背景

公司有多个前端项目,每个项目独立部署,各个项目里可能会使用相同的组件或者页面。对于这样的组件或者页面如何管理呢?我们可以把公共的组件或者页面抽离,单独存放在一个项目里,然后在其他项目里引入这个公共的项目

2、方案

2.1 创建一个公共组件项目commonpack(名字自己定义),如下图


image.png


image.png


outPages目录里是公共组件pageA和pageB,然后在根目录下创建index.js,向外暴露组件pageA和pageB。index.js文件里面代码如下

import pageA from './outPages/pageA'
import pageB from './outPages/pageB'
export {
  pageA,
  pageB
}

2.2 创建一个标准的前端项目packageone,packagetwo,那么packageone,packagetwo如何来引入公共组件项目commonpack里的组件pageA和pageB呢?有3个方案。

方案一:npm发布引用

公共组件项目commonpack的组件编写完成后,将其发布到npm。开发packageone,packagetwo的人员通过npm install命令将commonpack以node_module的方式引入

npm install commonpack --save

另外,每次改动代码再次发布时,需要修改package.json文件中的版本号,不然发布不成功。

这种方法在开发阶段不便捷,改个公共组件,改完还得发包,发完后其他项目使用还得从新安装。

方案二:npm link

首先进入commonpack包,在控制台输入

npm link

这会创建一个软连接,并保存到目录C:\Users\Administrator\AppData\Roaming\npm\node_modules下面。

然后进入packageone和packagetwo,在控制台输入

npm link commonpack

这就将这个公共的项目通过软连接的方式引入到项目里面来了。下图可以看到在node_modules中common包和其他的包文件夹样式是不一样的,common文件夹只是一个软链接。

image.png

image.png


这时修改commonpack项目下面的任意代码都会实时生效,不用打包,不用更新引入包,也不用重启。

需要注意的是,当项目包依赖更新后,也就是执行了 npm install xxx 之后,需要重新link common项目。而且使用npm link后本地package.json里没有记录,无法直观的查看本地包的引用。

方案三:npm本地file引用(推荐)

分别进入packageone和packagetwo,在控制台输入命令:

npm install ../commonpack/

其中/commonpack/是commonpack的相对路径,这里也可以输入绝对路径。

这样就将commonpack这个工程以node_module的方式引入到packageone和packagetwo项目中了。可以正常使用commonpack在index.js中导出的组件了。

命令执行完后,package.json里会多一条记录


image.png


image.png

同样这时修改common项目下面的任意代码都会实时生效,不用打包,不用更新引入包,也不用重启。而且在package.json中有引入记录。

3、举例

我们在packageone项目里引入公共组件pageA和pageB


image.png


image.png


效果如下


image.png


image.png

github项目地址:https://github.com/Amosyue/npmPackages


相关文章
|
1月前
|
前端开发 小程序 API
【微信小程序】-- 使用 npm 包 - API Promise化(四十二)
【微信小程序】-- 使用 npm 包 - API Promise化(四十二)
|
1月前
|
资源调度 小程序 前端开发
【微信小程序】-- 使用 npm 包 - Vant Weapp(四十一)
【微信小程序】-- 使用 npm 包 - Vant Weapp(四十一)
|
1月前
|
资源调度 前端开发 JavaScript
构建高效前端项目:现代包管理器与模块化的深度解析
【2月更文挑战第21天】 在当今快速演变的前端开发领域,高效的项目管理和代码组织已成为成功交付复杂Web应用的关键。本文将深入探讨现代前端包管理器如npm, yarn和pnpm的工作原理,以及它们如何与模块化编程实践(例如CommonJS、ES6模块)协同工作以优化开发流程。我们将剖析这些工具的内部机制,了解它们如何解决依赖冲突,提高安装速度,并保证项目的健壮性。同时,本文还将介绍模块化编程的最佳实践,包括代码拆分、重用和版本控制,帮助开发者构建可维护且性能卓越的前端项目。
|
1月前
|
前端开发
前端通过input标签封装Upload组件实现文件上传
前端通过input标签封装Upload组件实现文件上传
53 0
|
1月前
|
Web App开发 缓存 前端开发
前端性能优化方案有哪些?
前端性能优化方案有哪些?
72 1
|
1月前
|
缓存 前端开发 JavaScript
Vite 构建流程大揭秘:快速构建前端项目的秘密武器
Vite 构建流程大揭秘:快速构建前端项目的秘密武器
|
1月前
|
前端开发 JavaScript jenkins
构建高效前端项目:从模块化到自动化
【2月更文挑战第13天】 随着Web技术的不断进步,前端项目的复杂性日益增加。为了确保可维护性和性能,前端工程师必须采用模块化和自动化的策略来优化开发流程。本文将探讨如何使用现代前端工具和最佳实践来构建一个高效的前端项目架构,包括模块打包、代码分割和持续集成等方面。
|
2月前
|
缓存 JavaScript 前端开发
IDEA启动VUE前端项目
IDEA启动VUE前端项目操作流程
|
1月前
|
资源调度 小程序 前端开发
【微信小程序】-- npm包总结 --- 基础篇完结(四十七)
【微信小程序】-- npm包总结 --- 基础篇完结(四十七)
|
22天前
|
前端开发 应用服务中间件 nginx
Nginx配置详解Docker部署Nginx使用Nginx部署vue前端项目
Nginx配置详解Docker部署Nginx使用Nginx部署vue前端项目
91 0

推荐镜像

更多