在我们公司,我们有一个本地Sonatype Nexus,我们用它来缓存Npm,Maven,Nuget等。它被设置为公共存储库的代理,并且缓存了所有node_modules。然而,他们自己的npm模块仍然从互联网上获取其他工件,这可能会导致问题,因为我们希望拥有在我们控制下构建所需的一切。
例如,如果我们切断服务器的互联网连接,我们会在npm install期间收到这些错误:
else if{
document.getElementById('btnyes').style.display = 'none';
document.getElementById('btnno').style.display = 'none';
document.getElementById('yes').style.display = 'none';
document.getElementById('no').style.display = 'block';
}
无论如何要解决这个问题?非常感谢帮助和提示。
答案 0 :(得分:1)
这种超越注册表的范围是NPM系统的弱点和包的验证。
实际上只有两种选择。它们都很难实现。
您可以拦截所有外部URL调用并将其重写为等效的本地资源。问题当然是可能存在很多问题,而且它们也会发生变化。
你可以做的另一件事是分叉那些与之相关的npm包,将链接更改为本地有效或某些替换,并将它们重新发布到你的内部npm存储库。给定存储库组中的正确顺序或使用包的不同版本或名称,您可以使用它。
不幸的是,我无法想到更好的事情。根据我的知识,没有其他真正的解决方案。
中还提供了其他提示