开发相关--离线npm install?创建npm私仓(verdaccio)

    技术2024-01-17  103

    场景

    公司开发环境完全离线,无法使用npm install。

    一、先说原理

    1.本质上就是利用一台能上网的机器,所安装npm的依赖缓存下来。然后将这个环境移植到离线网络环境中。选择verdaccio两个原因:简单、还再维护。它的大致工作如下:
    本地创建一个提供npm依赖安装的网络服务。当接收到请求时,去寻找资源。找到之后,返回给客户端,并缓存此服务以便下次使用。
    2.我们今天总体要做如下几件事
    1.有网的机器安装verdaccio环境,并启动服务。2.通过npm install,使verdaccio缓存所需要的npm依赖包。3.将这个环境移植到内网服务器中,并启动服务。4.开发机器设置npm代理到服务器。
    2.将此环境

    二、实现步骤

    0.这是他们的故事:
    1个能再互联网呼吸的网络:随便一台机器(onlinePC)1个离线网络:私仓服务器(servicePC) + 开发人员的机器(devPC)1个U盘

    ------------------1.onlienPC篇(win10)--------------

    前提:安装node.js(略)、安装python3(略)。
    步骤如下
    首次启动服务,生成配置文件config.yaml。 npm install -g verdaccio

    关闭服务(ctrl + c),修改config.yaml,关键配置如下: storage: ./storage // 1.缓存地址 uplinks: npmjs: url: https://registry.npm.taobao.org/ // 2.代理地址 server: keepAliveTimeout: 60 middlewares: audit: enabled: true listen: 0.0.0.0:9999 // 3.服务启动地址、端口,一定加上不然其他机器访问不了 重启服务缓存依赖包(关键的一步) // package.json所在目录下 npm install --registry http://localhost:9999 无报错的情况下环境完毕
    ------------------2.U盘篇--------------
    因为内网完全没有网络,一切都要拷贝。所以别忘了node.js和python包
    拷贝verdaccio自身: C:\Users\Administrator\AppData\Roaming\npm\node_modules\verdaccio拷贝verdaccio启动命令: C:\Users\Administrator\AppData\Roaming\npm\verdaccio.cmd C:\Users\Administrator\AppData\Roaming\npm\verdaccio.ps1拷贝verdaccio服务配置、缓存: C:\Users\Administrator\AppData\Roaming\verdaccio
    ------------------3.内网服务器servicePC篇(win7)IP 192.168.1.5-------------
    安装node.js和pythonU盘中拷贝到对应目录后,启动服务, npm install -g verdaccio 启动verdaccio,此时服务地址为,192.168.1.5:9999: verdaccio
    ------------------4.开发机devPC篇(win7)-------------
    设置npm代理 npm config set registry http://192.168.1.5:9999 项目目录下 npm install

    三、注意

    此篇案例来源是本人想再自己机器搭建方便其他同事,所以没有linux、docker的事,使用docker会让移植更方便。(有人可能要问服务器打包怎么办?都是泪啊,由于各种大环境因素,自动打包降成了同志们手动打包)做缓存的时候注意实际项目中package-lock.json的版本
    Processed: 0.042, SQL: 10