网站后台功能开发,深圳seo外包公司,iis搭建网站,海南专业网站运营托管verdaccio搭建npm私有仓库前言随着前端技术的不断发展#xff0c;前后端分离已成为主流趋势#xff0c;这就导致了前端承受的分工压力会越来越大#xff0c;前端项目也将变得十分庞杂#xff0c;因此在技术方面会考虑按照业务线进行拆分成几个业务系统。这些系统之间如何共… verdaccio搭建npm私有仓库前言 随着前端技术的不断发展前后端分离已成为主流趋势这就导致了前端承受的分工压力会越来越大前端项目也将变得十分庞杂因此在技术方面会考虑按照业务线进行拆分成几个业务系统。这些系统之间如何共用一套公司内部的组件资源库如果每个工程都拷贝一份会增加大量的升级和运维工作。上传到npm库是个很不错的选择不同的系统都指向一个npm源然后通过npm install就可以搞定所以搭建一套公司内部的npm库就显得非常有必要。01搭建npm私服的好处依赖包在公司内网的服务器上不需要发布到外网下载依赖包和发布包都可以配置权限各个项目依赖包可以直接缓存到npm私有服务器上不用在外网的npm中下载下载速度得到提升02Verdaccio简介 Verdaccio 是一个简单的、零配置本地私有 npm 软件包。它是 sinopia 开源框架的一个fork github start 7000。由于sinopia 三年前就已经没有人进行维护了缺陷也比较多。Verdaccio成为了市场上最主流的本地私有npm插件。Verdaccio开箱即用拥有自己的小型数据库能够代理其他注册表(例如npmjs.org)一路缓存下载的模块。03 离线搭建verdaccio环境 根据公司信息安全要求开发工作均在内网进行为了不影响开发效率让开发人员可以更方便的使用npm服务器就必须自建npm私有仓库。Verdaccio通常会使用npm进行安装使用因在内网中无法执行安装我们使用官方提供的docker镜像安装这对于开发持续集成还是比较简单的。在服务启动方面建议不要用root用户 不然会有一些特殊的问题。具体步骤如下 安装docker配置docker服务 加载docker镜像使用bridge方式搭建网桥 将启动容器加入脚本(针对redhat其他系统略有不同) 运行Verdaccio镜像创建一个容器依赖包通过在外网打包上传至内网服务器verdaccio/storage目录下即可。04Verdaccio的使用 我们目的就是为了把项目中需要用到的依赖包放到内网直接从内网下载。我们如何把包放到搭好的verdaccio里面呢具体的流程如下 verdaccio 的特点是安装在哪个目录下运行就会在对应的目录下创建自己的文件。目录下默认有两个文件config.yaml和storagehtpasswd 是添加用户之后自动创建的第一次启动默认的config.xml文件是从原始文件default.yaml拷贝而来可先修改verdaccio 原始的default.yaml。verdaccio继承了sinopia端口号4873依然不变。 运行Verdaccio。正常启动后通过虚拟机地址、端口进行访问看到如下界面就证明我们的私服搭建成功了。 配置npm使用npm publish命令发布包 npm install这个命令是默认下载当前定位文件夹下package.json文件中需要的所有包包括间接依赖的包。第一次下载之后的包都会缓存在我们的私服上之后我们就可以在私服上下载依赖包。(小贴士npm install执行成功后会在项目下自动生成package-lock.json文件如果切换npm私服地址需删除该文件后重新执行npm install)05 踩过的坑 node-sass报错 部署到内网后npm install缓存包时如果用到node-sass会出现报错解决方法是从有外网的电脑里面把C:\Users\Acer\AppData\Roaming\npm-cache\node-sass\里的win32-x64-57_binding.node拷出来放到需要npm install的内网电脑中然后新建系统变量。变量名SASS_BINARY_PATH变量值win32-x64-59_binding.node的所在目录位置。再次执行npm install下载node-sass就正常了。 npm-shrinkwrap.json版本锁定报错 在项目中使用npm-shrinkwrap.json来锁定版本在安装包的时候可能会报错“Maximum call stack size exceeded”删除npm-shrinkwrap.json、yarn.lock和node_modules。重新生成package-lock.json文件即可。hi新朋友扫码关注我们呦~Merry Christmas