假设我有一个私有的、有范围的 NPM 存储库,它位于公司防火墙后面。我想将我的项目设置在另一台无法连接到 VPN 的计算机上,因此它将无法访问该私人仓库。
如何设置我的项目以轻松地从本地文件夹和/或本地 npm 缓存导入这些依赖项并跳过私有仓库?
也就是说,如果我的 package.json 文件有...
"dependencies": {
"@privateRepo/some-library-framework": "4.2.1"
}
...而且我无法访问服务器,但我可以获取所需的文件,并且可以从node_modules
位于可以访问 repo 的机器上的另一个文件夹中安装这些文件。
我尝试从包中获取文件@privateRepo
并npm cache add D:\path\to\lib\with\packageDotJsonInside
为每个包使用,但仍然得到......
Not Found - GET https://registry.npmjs.org/@privateRepo%2some-library-framework - Not found
...当我尝试npm i
休息时。
我认为这意味着我需要.npmrc
像这里描述的那样设置一些东西......
registry=https://registry.npmjs.org/
@test-scope:registry=http://nexus:8081/nexus/content/repositories/npm-test/
//nexus:8081/nexus/content/repositories/npm-test/:username=admin
//nexus:8081/nexus/content/repositories/npm-test/:_password=YWRtaW4xMjM=
email=…
...您通常在其中设置身份验证,但您也在其中设置范围包的 URL。我想我想在@privateRepo:registry=http://localhost/something/something
这里设置。
但我认为这也意味着我至少需要创建一个本地网络服务器(或 npm repo?)来回答请求(然后也许我正在寻找类似verdaccio的东西?)。
那么,最简单的情况是,有没有办法强制应用程序使用缓存版本,还是我需要更多的填充?如果不是,那么创建本地存储库以代替私有存储库为这些包提供服务的最简单方法是什么?