具体的场景是我拿到的是一个现成的前端项目,通过我们公司自己搭建的镜像来配置环境。更换镜像源的代码是:npm config set registry private_mirror_url
顺便如果想用淘宝的镜像的话可以把URL写成这个:https://registry.npmmirror.com/
我使用内网镜像会报这个报错信息,意思是这个包我们镜像没有:
npm ERR! code ETARGET
npm ERR! notarget No matching version found for @onlyoffice/document-editor-vue@^1.4.0.
npm ERR! notarget In most cases you or one of your dependencies are requesting
npm ERR! notarget a package version that doesn't exist.
npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\user_name\AppData\Local\npm-cache\_logs\2025-04-27omit-debug-0.log
如果用淘宝镜像则会报这个报错信息,意思是那个镜像觉得这个包有风险,所以直接给ban了:
npm ERR! code E451
npm ERR! 451 Unavailable For Legal Reasons - GET https://registry.npmmirror.com/chalk-next - [UNAVAILABLE_FOR_LEGAL_REASONS] chalk-next was blocked, reason: vabjs bad guy, steal env and delete files. (operator: cnpmcore_admin/omit)
npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\user_name\AppData\Local\npm-cache\_logs\2025-04-27omit-debug-0.log
↑顺便这个chalk-next真的是个有风险的包,被投毒了,会自动删除代码文件,请看:npm 包 chalk-next 被开发者投毒,源码 SRC 目录被删除一、事件简述 1月5日,有开发者在 twitte - 掘金 【开源之耻】vue-admin-beautiful npm 包投毒事件始末 – 码中人的博客
也许你会好奇那我为什么还非要下这个包呢?因为我得先把项目跑起来才能知道接下来能怎么办……
总之造成的后果都是一样的,就是没有办法下载特定包,也没有自动新建node_modules文件夹。解决方式是从已经下好特定包的电脑直接把node_modules里的特定包文件夹转移到新电脑上,人工新建一个node_modules文件夹放进去。
然后再重新运行npm install --force
就能把包下到node_modules文件夹里了,也会自动跳过已经下载好的包文件!
本文撰写过程中参考的网络资料: