我们有一个基于Sinopia的私有 npm 存储库
我应该如何定义package.json一些软件包将从 Synopia 而不是从全局 npm 存储库安装?
如果我从命令行安装它,我可以运行:npm install <package_name> --registry <http://<server:port>
PS 尝试谷歌并查看官方 NPM 文档,但一无所获。
我们有一个基于Sinopia的私有 npm 存储库
我应该如何定义package.json一些软件包将从 Synopia 而不是从全局 npm 存储库安装?
如果我从命令行安装它,我可以运行:npm install <package_name> --registry <http://<server:port>
PS 尝试谷歌并查看官方 NPM 文档,但一无所获。
我知道的一种方法是 .npmrc 你也可以在项目中使用 .npmrc
像这样设置配置
registry = http://10.197.142.28:8081/repository/npm-internal/
init.author.name = Himanshu sharma
init.author.email = rmail@email.com
init.author.url = http://blog.example.com
# an email is required to publish npm packages
email=youremail@email.com
always-auth=true
_auth=YWRtaW46YWRtaW4xMjM=
auth 可以通过用户名生成:密码 echo -n 'admin:admin123' | openssl base64
输出 YWRtaW46YWRtaW4xMjM=
sinopia 的全部意义在于一个私人的registry和一个proxy同时的。您可以使用上行链接从一个注册表入口点安装所有软件包。如果本地存储无法解决依赖关系,Sinopia 可以路由到任何注册表。默认情况下,他指向。npmjs
因此,如果您将配置设置为
# a list of other known repositories we can talk to
uplinks:
npmjs:
url: https://registry.npmjs.org/
packages:
'@*/*':
# scoped packages
access: $all
publish: $authenticated
proxy: npmjs
'**':
# allow all users (including non-authenticated users) to read and
# publish all packages
#
# you can specify usernames/groupnames (depending on your auth plugin)
# and three keywords: "$all", "$anonymous", "$authenticated"
access: $all
# allow all known users to publish packages
# (anyone can register by default, remember?)
publish: $authenticated
# if package is not available locally, proxy requests to 'npmjs' registry
proxy: npmjs
您应该能够独立于每个依赖项的来源来解决所有依赖项
btw:sinopia已经不再维护了。