私有npm搭建
https://juejin.cn/post/6844903776533364749
cd /root/.config/verdaccio/pm2 start verdacciopm2 restart verdaccio
完整配置如下:
## This is the default config file. It allows all users to do anything,# so don't use it on production systems.## Look here for more config file examples:# https://github.com/verdaccio/verdaccio/tree/master/conf## path to a directory with all packagesstorage: ./storage# path to a directory with plugins to includeplugins: ./pluginsweb:title: Verdaccio# comment out to disable gravatar support# gravatar: false# by default packages are ordercer ascendant (asc|desc)# sort_packages: asc# convert your UI to the dark side# darkMode: true# logo: http://somedomain/somelogo.png# favicon: http://somedomain/favicon.ico | /path/favicon.ico# rateLimit:# windowMs: 1000# max: 10000# translate your registry, api i18n not available yet# i18n:# list of the available translations https://github.com/verdaccio/ui/tree/master/i18n/translations# web: en-USauth:htpasswd:file: ./htpasswd# Maximum amount of users allowed to register, defaults to "+inf".# You can set this to -1 to disable registration.# max_users: 1000# a list of other known repositories we can talk touplinks:npmjs:url: https://registry.npmjs.org/packages:'@*/*':# scoped packagesaccess: $allpublish: $authenticatedunpublish: $authenticatedproxy: 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/publish packages# (anyone can register by default, remember?)publish: $authenticatedunpublish: $authenticated# if package is not available locally, proxy requests to 'npmjs' registryproxy: npmjs# You can specify HTTP/1.1 server keep alive timeout in seconds for incoming connections.# A value of 0 makes the http server behave similarly to Node.js versions prior to 8.0.0, which did not have a keep-alive timeout.# WORKAROUND: Through given configuration you can workaround following issue https://github.com/verdaccio/verdaccio/issues/301. Set to 0 in case 60 is not enough.server:keepAliveTimeout: 60middlewares:audit:enabled: true# log settingslogs: { type: stdout, format: pretty, level: http }#experiments:# # support for npm token command# token: false# # disable writing body size to logs, read more on ticket 1912# bytesin_off: false# # enable tarball URL redirect for hosting tarball with a different server, the tarball_url_redirect can be a template string# tarball_url_redirect: 'https://mycdn.com/verdaccio/${packageName}/${filename}'# # the tarball_url_redirect can be a function, takes packageName and filename and returns the url, when working with a js configuration file# tarball_url_redirect(packageName, filename) {# const signedUrl = // generate a signed url# return signedUrl;# }# This affect the web and api (not developed yet)#i18n:#web: en-US# you can specify listen address (or simply a port)listen: 0.0.0.0:4873url_prefix: /npm/
npm配置
cd /etc/nginx/conf.dvim default_ssl.conf
# private npm verdacciolocation /npm/ {proxy_pass http://127.0.0.1:4873/;proxy_set_header Host $host:$server_port;proxy_set_header X-Forwarded-For $remote_addr;proxy_set_header X-Forwarded-Proto $scheme;}
