文章目录
- 一、npm联网下载
- 二、npm离线测试安装
- 三、npm实际离线安装问题
- 四、成功
一、npm联网下载
- 确认联网机和离线机的node和npm版本是否一致。
- win+R,cmd,运行命令提示符:
// 查看node版本
node -v
// 查看npm版本
npm -v
- 下载
- 新建一个文件夹(NpmPack),用于存放下载的包。
// 通过命令提示符(手动新建也一样)
mkdir NpmPack
- 根据需要,下载需要的包。
npm install <pack_name>
// 例:
npm install vue-qr
// 因为需要下载好几个包,我又新建了一个vue-qr文件夹,用于存放下载的vue-qr包
下载成功如下图:
此时,文件夹内多了一下文件夹和文件
- 生成.tgz文件,离线安装时,需要用它安装
npm pack <pack_name>
// 例:
npm pack vue-qr
vue-qr-4.0.9.tgz文件同样存放于vue-qr文件夹内。
二、npm离线测试安装
- 离线安装
断网测试(还没有在另一台离线机子上测试)。
// npm install path\pack_name-version.tgz
// 如下:
npm install E:\Code\Java\Environment\NpmPack\vue-qr\vue-qr-4.0.9.tgz
本机(联网机)离线安装测试成功。
三、npm实际离线安装问题
联网机离线测试安装后,尝试在无网络的机子上进行安装,遇到了一下问题:
- 第一次尝试安装-失败
This version of npm is compatible with lockfileVersion@1,
but package-lock.json was generated for lockfileVersion@2.
I’ll try to do my best with it!
即:
npm WARN read-shrinkwrap 这个版本的 npm 兼容 lockfileVersion@1,
但是 package-lock.json 是为 lockfileVersion@2 生成的。
我会尽力做到最好的!
于是去看了一下2台机子的package-lock.json文件,发现:
联网机 package-lock.json
{
"name": "ruoyi",
"version": "3.8.7",
"lockfileVersion": 1,
"requires": true,
}
离线机 package-lock.json
{
"name": "ruoyi",
"version": "3.8.7",
"lockfileVersion": 2,
"requires": true,
}
当尝试直接修改离线机package-lock.json 的 lockfileVersion值,将其由2修改为1后,再次安装,仍然npm包仍然安装失败。提示信息未变。
问题1
:
那有没有办法通过修改离线机的 lockfileVersion 值,使npm包顺利安装?
问题2:
同样的若依框架源代码,同样的node、npm版本,为什么在2台机子上,package-lock.json文件中>lockfileVersion会不一样?
四、成功
经历n次查找和尝试之后,终于找到了正确的方法。
从开始到这次成功,整个过程挺蛋疼的,原来只需要如下就行......
例如:vue-qr插件
- 下载vue-qr插件
- // vue-qr插件下载位置位于:
..\NpmPack\vue-qr
// 需要的可能就是这个:..\NpmPack\vue-qr\node_modules\vue-qr\src\packages\vue-qr.vue
- 复制粘贴
- // 若依项目文件的node_modules文件夹位置如下:
...\RuoYi-Vue-master\RuoYi-Vue-master\ruoyi-ui\node_modules
将…\NpmPack\vue-qr\node_modules文件夹下vue-qr文件夹赋值粘贴到项目文件node_modules文件夹下,完事。
- 引用
import VueQr from 'vue-qr/src/packages/vue-qr.vue';