多个前端项目中公共组件使用方案(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


相关文章
|
25天前
|
JavaScript 前端开发 Java
npm学习一:npm 包管理工具 学习、使用。
这篇文章介绍了npm的基础知识和常用命令,包括安装包、查看包信息、管理依赖等操作,并提供了如何删除npm安装的镜像以及如何彻底删除node_modules文件夹的具体步骤。
57 2
|
3天前
|
前端开发 数据可视化 搜索推荐
深入剖析极态云优雅的前端框架设计方案(上)
最近在体验极态云,这款低代码软件开发产品,发现其前端框架设计方案很优雅很强大! 在接下来的学习过程中,我将持续输出自己对极态云前端框架设计方案的深入理解,包括具体的使用技巧、优势分析以及可能的应用场景等方面的内容,希望能为大家提供有价值的参考。
|
24天前
|
JavaScript 前端开发 Java
npm学习一:npm 包管理工具 学习、使用。
这篇文章是关于npm包管理工具的学习、使用指南,包括npm概述、基础命令和如何安装webpack。
47 3
npm学习一:npm 包管理工具 学习、使用。
|
14天前
|
JavaScript 安全 测试技术
vue封装组件发布到Npm
【10月更文挑战第17天】
|
19天前
|
移动开发 小程序 数据可视化
基于npm CLI脚手架的uniapp项目创建、运行与打包全攻略(微信小程序、H5、APP全覆盖)
基于npm CLI脚手架的uniapp项目创建、运行与打包全攻略(微信小程序、H5、APP全覆盖)
139 3
|
13天前
|
缓存 前端开发 JavaScript
前端架构思考:代码复用带来的隐形耦合,可能让大模型造轮子是更好的选择-从 CDN 依赖包被删导致个站打不开到数年前因11 行代码导致上千项目崩溃谈谈npm黑洞 - 统计下你的项目有多少个依赖吧!
最近,我的个人网站因免费CDN上的Vue.js包路径变更导致无法访问,引发了我对前端依赖管理的深刻反思。文章探讨了NPM依赖陷阱、开源库所有权与维护压力、NPM生态问题,并提出减少不必要的依赖、重视模块设计等建议,以提升前端项目的稳定性和可控性。通过“left_pad”事件及个人经历,强调了依赖管理的重要性和让大模型代替人造轮子的潜在收益
|
18天前
|
缓存 JavaScript 前端开发
拿下奇怪的前端报错(三):npm install卡住了一个钟- 从原理搞定安装的全链路问题
本文详细分析了 `npm install` 过程中可能出现的卡顿问题及解决方法,包括网络问题、Node.js 版本不兼容、缓存问题、权限问题、包冲突、过时的 npm 版本、系统资源不足和脚本问题等,并提供了相应的解决策略。同时,还介绍了开启全部日志、使用替代工具和使用 Docker 提供 Node 环境等其他处理方法。
176 0
|
18天前
|
缓存 前端开发 UED
前端 8 种图片加载优化方案梳理
本文首发于微信公众号“前端徐徐”,详细探讨了现代网页设计中图片加载速度优化的重要性及方法。内容涵盖图片格式选择(如JPEG、PNG、WebP等)、图片压缩技术、响应式图片、延迟加载、CDN使用、缓存控制、图像裁剪与缩放、Base64编码等前端图片优化策略,旨在帮助开发者提升网页性能和用户体验。
93 0
|
18天前
|
前端开发 JavaScript 开发工具
从零开始:构建、打包并上传个人前端组件库至私有npm仓库的完整指南
从零开始:构建、打包并上传个人前端组件库至私有npm仓库的完整指南
130 0
|
19天前
|
资源调度 前端开发 安全
前端实战:基于Verdaccio搭建私有npm仓库,轻松上传与下载自定义npm插件包
前端实战:基于Verdaccio搭建私有npm仓库,轻松上传与下载自定义npm插件包
30 0

推荐镜像

更多