--- id: use-cases(使用-案例) title: "使用案例" --- ## 使用私有包 您可以添加用户并管理哪个用户可以访问哪个包。 建议您定义私有包的前缀。例如“local(当地)",这样您私人的东西将如下所示:`local-foo`。 通过这种方法您可以清楚地把公有包和私有包分开。 ## 从npmjs.org使用公有包 如果一些包没有在存储里,服务器将试着从npmjs.org中取它。 如果npmjs.org坏了,它会假装没有其他的包存在, 并起到缓存包的作用。 Verdaccio将只下载需要的 (= 由客户要求的)信息, 而且此信息将被缓存,这样如果客户再次问同样的事,它可以马上作用而不需要问npmjs.org。 例如:如果您曾经成功从此服务器请求express@3.0.1,哪怕npmjs.org 坏了,您也可以在任何时候再次请求(包含其相关项)。 但是,除非有人真正需要express@3.0.0,否则它是不会被下载的。 而且如果npmjs.org脱线,此服务器将会说除了express@3.0.1 (=只有在缓存里的)外,没有其他的发布。 ## 覆盖公共包 如果您希望使用一些公共包`foo`的修正版本,您只要把它发布到您的当地服务器,这样当您输入`npm install foo`,它将考虑安装您的版本。 这里有两个选项: 1. 您要创建单独的分叉并停止与公共版本同步。 如果您希望这么做,您应该修改配置文件,这样verdaccio将不再向npmjs提出此包的请求。 将此包单独添加到*config.yaml* 中并从`proxy`列表删除`npmjs`,然后重启服务器。 当您在本地发布包,您可能应该从现有版本更高的 string开始,这样它就不会和缓存中的现有包冲突。 2. 您希望临时使用自己的版本,但在它更新后立即切换回公共版本。 为了避免版本冲突,您应该使用下一个补丁版本的自定义预发行的后缀。 例如,如果公共包有 0.1.2版本,您可以上传0.1.3-my-temp-fix。 这样,您的包将在原始维护人员更新其公共包到0.1.3之前使用。