搭建npm私库(超简单)

原因

我搭私库的原因很简单,目前正在开发一个组件库,提供给公司内部使用,我不想去注册npm,也不想等待npm的审核,只想要有个仓库快速测试发布自己的npm包。

怎么搭

目前最方便的方案就是verdaccio,搭建非常方便,一般就几分钟就搞定了,需要的工具:

  • 安装nodejs和npm
  • 全局安装verdaccio
  • shh和pm2(非必须,如果你要部署到远程服务器的话)

接下来详细介绍搭建的步骤。

全局安装verdaccio

安装verdaccio之前,我默认大家都已经安装了nodejs和npm环境,这个就不再赘述了。如果是本地搭建的话,直接进行下面的操作就可以了。如果是在远程服务器搭建,通过ssh连接远程服务器就行。

# 全局安装
npm install verdaccio - g

修改verdaccio配置

修改配置的目的就是让我们的私库可以通过公网的ip访问,首先查看npm全局安装包的所在位置:

npm root -g
/usr/local/Cellar/node/8.4.0/lib/node_modules

其中_/usr/local/Cellar/node/8.4.0/lib/node_modules_便是我们npm包全局安装的地址。按以下命名查找配置文件所在的位置 然后

vim default.yaml

配置情况如下

#
# 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 packages
storage: ./storage
# path to a directory with plugins to include
plugins: ./plugins

web:
  # WebUI is enabled as default, if you want disable it, just uncomment this line
  #enable: false
  title: Verdaccio

auth:
  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 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

# You can specify HTTP/1.1 server keep alive timeout in seconds for incomming 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 enought.
server:
  keepAliveTimeout: 60

# To use `npm audit` uncomment the following section
middlewares:
  audit:
    enabled: true

# log settings
logs:
  - {type: stdout, format: pretty, level: http}
  #- {type: file, path: verdaccio.log, level: info}

# listen
listen: 0.0.0.0:4873

最后一行为新增的配置, 用于支持外网ip访问

listen: 0.0.0.0:4873

然后输入:wq保存并退出vim模式,启动verdaccio服务即可。我一般会通过pm2启动,原因很简单,关闭doc窗口后,服务不会停掉,并且能很好的管理我们启动的服务。

使用pm2

常用命令

  • 安装:npm install pm2 -g
  • 启动:pm2 start verdaccio
  • 停止:pm2 stop verdaccio
  • 重启:pm2 restart verdaccio
  • 删除应用:pm2 delete verdaccio
  • 查看日志:pm2 logs verdaccio

我们来启动服务,查看效果:

pm2 start verdaccio

至此,npm的私库搭建就完成了,图中是我最新发布的一个基于vue的组件库,后续会对组件库的编写和发布做介绍,有兴趣的朋友关注以下。

原文链接:segmentfault.com

上一篇:flipchain
下一篇:fosho

相关推荐

  • 🔥基于vue3.0.1 beta搭建仿京东淘宝的电商商城项目!

    前言 就在前段时间,vue官方发布了3.0.0beta.1 版本,趁着五一假期有时间,就把之前的一个电商商城的项目,用最新的Composition API拿来改造一下! 👉GitHub地址请访问🔗...

    1 个月前
  • 高性能网站搭建-前端性能优化 (附Vue首屏加载时间优化详细方案)

    前言 事实上, 只有的最终用户响应时间是发在从Web服务器获取HTML文档并传送到浏览器中的。如果希望能够有效地减少页面的响应时间,就必须关注剩余的最终用户体验。

    1 年前
  • 项目中npm依赖问题

    最近开发遇到一个npm依赖导致的问题,报错如下。 sloterror(https://img.javascriptcn.com/804ed4a03d02191762c1f48473ba1711 "sl...

    2 年前
  • 页面可视化搭建工具前生今世

    原文地址: https://github.com/CntChen/cn...(https://github.com/CntChen/cntchen.github.io/issues/15) 背景...

    2 年前
  • 随记-npm

    npm npm是包管理器,方便开发人员分享,复用代码 用于搜索js模块/包的网站 npm服务器可下载或上传安装包或命令行程序 npm仓库存储安装包/安装模块 npm 安装 npm依赖于node,...

    2 个月前
  • 阿里云搭建SS代理教程

    一.安装环境 二.搭建服务器 东西准备齐全我们就开始搭建服务器啦 1.使用root用户,分别执行以下3条命令 $ wget nocheckcertificate O shadowsocksall...

    9 个月前
  • 针对前端开发可重用组件并发布到NPM

    翻译:疯狂的技术宅 原文:https://www.smashingmagazine....(https://www.smashingmagazine.com/2018/07/reusablecom...

    1 年前
  • 通过npm引用的vue组件使用详解

    什么是组件:组件是Vue.js最强大的功能之一。组件可以扩展HTML元素,封装可重用的代码。在较高层面上,组件是自定义的元素,Vue.js的编译器为它添加特殊功能。

    3 年前
  • 透过 TDD 模式学习如何实现各种 npm 工具

    前言 在程序員的日常精進之中,閱讀優秀的代碼是必不可少的。透過 TDD 的開發模式,可以模仿那些優秀的代碼,從而提升自己代碼水平。下面介紹如何從零開始搭建 TDD 環境,並構建 isEven 代碼...

    2 年前
  • 边学习变记:npm 常用的几个指令(持续更新。。。)

    在当前文件夹下,地址栏输入cmd 呼出控制台。1.npm init 初始化项目,npm init y 生成默认配置。 2.查看当前使用的镜像地址:npm get registry默认镜像地址:http...

    3 个月前

官方社区

扫码加入 JavaScript 社区