JS高级—16—包管理工具
一、代码共享方案
二、npm
使用npm来管理我们的模块,如果需要使用直接使用npm即可,类似java的maven,如果想看源码再去github找;
npm网页:一个是回去搜索registry仓库里所有包的web网页;
npm registry:一个是存储所有代码的仓库;
2.1npm 的配置文件
2.2npm配置文件的属性
main属性指定了,我们写的这个模块,哪一个文件是我们的入口文件;比如说main属性指定为foo.js;
比如说其他调用者通过import foo from ‘axios’的方法调用;(其实webpack是去找import foo from ‘axios/foo.js’)
peerDependancy:表示对等的依赖,安装我这个模块时先检查调用者项目里是否安装了peerDependancy里的包,如果有的话我这个模块才能正常使用;
比如安装element-plus需要的对等依赖时vue3,不然安装element-plus无法使用;
2.3npm的版本管理
2.4npm install的原理
package—lock.json的作用:
第一:有了package—lock.json,会记录真实的版本号,在npminstall的时候会安装这个真实的版本号,如果没有,可能会根据package.json文件安装,那^2.03可能就会安装为2.9.9,可能会导致一些异常;
第二:有了package—lock.json,在npminstall的时候会先检查是否依赖一致,即npminstall制定的版本和package—lock.json里记录的版本是否一致,如果一致可以查找本地时候有已安装的包的缓存,加快我们的安装速度;
2.5npm其他命令
有的时候本地缓存文件可能已经被破坏了,但是npm仍然从本地缓存去文件,所有就会有问题,我们可以用这个命令重新安装本地缓存;
然后把node_modules文件夹删除了,然后再把本地缓存解压缩到node_modules;
npx命令
2.6cnpm
可以npm的源还是官方原,但是安装个cnpm并把cnpm的源改成淘宝源,如果以后npm下载不了的东西,再用cnpm下载;
三、自己发布npm包
注意,发布自己的包,必须保证npm 的registry时官方源而不是淘宝源;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!