文档章节

使用sinopia搭建npm

lindeyi
 lindeyi
发布于 2017/10/25 10:30
字数 860
阅读 279
收藏 1

公司最近前端开发技术切到vue上,开发环境基于node.js,公用包不好管理,直接放在npm仓库上不合适,就打算在阿里云上搭建一套私有库。

搭建npm私有库方式有好几种,cnpm和sinopia,前者需要数据库支持配置复杂点,后者不需要数据库配置也简单,直接存储在文件夹中,所以选用sinopia。

安装环境及软件:

a) 、centOs6.5系统(版本比较老,现有的就没重新安装);

b)、node.js(sinopia需要基于nodejs环境)

c)、sinopia

d)、pm2(进程管理)

e)、nginx

f)、nrm(npm客户端管理)

1、首先需要安装node.js环境,sinopia是基于node.js环境运行的;

下载路径:https://nodejs.org/en/download/

如无特殊要求,选择打好的包,

[root@bjnja~]# wget https://nodejs.org/dist/v6.11.5/node-v6.11.5-linux-x64.tar.xz

解压包并重命名

[root@bjnja~]# tar xvf node-v6.11.5-linux-x64.tar.xz
[root@bjnja~]# mv  node-v6.11.5-linux-x64 node

配置node_home环境变量;在/etc/profile

export NODE_HOME=/usr/local/nodejs/node
export PATH=$NODE_HOME/bin:$PATH

重新加载配置

[root@bjnja~]# source /etc/profile

现在node.js环境安装好了,试试

[root@bjnja~]# node -v
v6.11.4

2、安装sinopia,通过npm

[root@bjnja~]# npm install -g sinopia

下载完,启动sinopia

[root@bjnja~]# sinopia
 warn  --- config file  - /root/.config/sinopia/config.yaml
 warn  --- http address - http://localhost:4873/

web管理界面端口是4873;现在只有本机可以访问,其他ip访问不了;

现在修改配置,找到/root/.config/sinopia目录下config.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/rlidwka/sinopia/tree/master/conf
#

# path to a directory with all packages
storage: /usr/local/sinopia/storage # 这是资源存储目录

auth:
  htpasswd:
    file: /usr/local/sinopia/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

  '*':
    # 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"
    # 访问权限,三种:"$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

# log settings
logs:
  - {type: stdout, format: pretty, level: http}
  #- {type: file, path: sinopia.log, level: info}
# 把之前localhost:4873改0.0.0.0:4873,开发访问
listen: 0.0.0.0:4873
# 绑定域名,不然只通过nginx会报错未设置www啥的
url_prefix: http://npm.bjnja.com

3、通过pm2管理sinopia;

sinopia之前启动很容易端口,使用pm2进程管理器;

[root@bjnja~]# npm install -g pm2

使用pm2 start开启sinopia

[root@bjnja~]# pm2 start sinopia
[PM2] Applying action restartProcessId on app [sinopia](ids: 0)
[PM2] [sinopia](0) ✓
[PM2] Process successfully started
┌─────────┬──────┬────────┬───┬─────┬──────────┐
│ Name    │ mode │ status │ ↺ │ cpu │ memory   │
├─────────┼──────┼────────┼───┼─────┼──────────┤
│ sinopia │ fork │ online │ 0 │ 0%  │ 4.9 MB   │
└─────────┴──────┴────────┴───┴─────┴──────────┘
 Use `pm2 show <id|name>` to get more details about an app

 关闭pm2 stop sinopia

4、使用nginx配置代理

     server {
        listen       80;
        server_name  npm.bjnja.com;

         location / {
                 proxy_pass     http://127.0.0.1:4873;
        }
    }

5、客户使用使用nrm管理

[root@bjnja-client~]# npm install -g nrm

使用nrm add 添加我们私有库

[root@bjnja-client~]# nrm add nja http://npm.bjnja.com

使用nrm ls可以列出刚才我们加上的

[root@bjnja-client~]# nrm ls  
  npm ---- https://registry.npmjs.org/
  cnpm --- http://r.cnpmjs.org/
  taobao - https://registry.npm.taobao.org/
  nj ----- https://registry.nodejitsu.com/
  rednpm - http://registry.mirror.cqupt.edu.cn/
  npmMirror  https://skimdb.npmjs.com/registry/
  edunpm - http://registry.enpmjs.org/
* nja ---- http://npm.bjnja.com/

使用nrm use nja自由切换;然后就可以使用npm指令,这是npm源已经切换我们刚加的;

补充:现在sinopia作者不维护了,推荐使用verdaccio,是sinopia分支

https://github.com/verdaccio/verdaccio

© 著作权归作者所有

lindeyi
粉丝 5
博文 16
码字总数 14150
作品 0
海淀
私信 提问
【玩转树莓派】使用 sinopia 搭建私有 npm 服务器

简介 效果展示 使用 sinopia 的好处是,node系的工程师,内部协作时,使用自有 npm 包,会非常方便;另外,sinopia,会缓存已经下载过的包,可以在相当程度上,加速 npm install 相关命令的执...

ios122
2017/11/22
0
0
使用Verdaccio搭建npm仓库

使用Verdaccio搭建npm仓库 曾静的技术博客2017-12-241 阅读 npm搭建仓库 Verdaccio是一个轻量级的私有NPM的Registry(从 Sinopia fork过来的,sinopia最后一次更新是在几年前了)。最开始是打...

曾静的技术博客
2017/12/24
0
0
Linux环境:gyp WARN EACCES user "root" does not have permission to access the dev dir“XX”

背景 最近项目里需要搭建npm私服,在各种对比后了使用sinopia来搭建,可是本地的工作做完了,在Linux服务器上搭的时候刚开始就出师不利。 详细错误信息 在安装sinopia的过程中出了下面的错误...

yyzzhc999
2018/04/18
0
0
使用verdaccio搭建npm私有仓库 - Better’s study fairyland

使用verdaccio搭建npm私有仓库 使用verdaccio搭建npm私有仓库 需求背景:平时在项目工作中可能会用到很多通用性的代码,比如,框架类、工具类以及公用的业务逻辑代码等等,通过打包发布到npm...

Better
02/14
0
0
使用sinopia搭建私有npm服务

原文地址 https://github.com/jindada/blog/issues/1 为什么需要搭建私有npm 私有的包只想在内部使用,还不想用git+ssh的方式,感觉不够优雅,并且还想可以配置相应的权限 npm上的包下载很慢...

黑魔法
2018/07/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Taro ScrollView 组件的 scrollTop 属性是个坑

官方issue:ScrollView设置scrollTop没效果 同样的,设置 scrollTop=0 并不能实现置顶,官方回复早就修复了,我的 Taro 版本已经是最新的,然而并未修复。 万能的评论区,给出了失效的原因。...

dkvirus
55分钟前
3
0
Qt那些事0.0.21

这次还是关于PRO文件中QMAKE_POST_LINK的故事。 平时都是使用VS2015作为编译器,恰巧想用MinGW编一版程序,结果偏偏出现了错误。话说测试的这个项目可是在Linux下(fodera 20)可以正确编译通...

Ev4n
今天
1
0
OSChina 周六乱弹 —— 抖音外放 亲妈下葬。

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @巴拉迪维 :一直没想明白黎明是怎么混进「四大天王」的,直到最近网易云音乐心动模式开启之后 #今日歌曲推荐# 《那有一天不想你》- 黎明 手机...

小小编辑
今天
534
8
Linux使用源码包安装软件

前言: 最近整理一些以前的学习笔记。 过去都是存储在本地,此次传到网络留待备用。 源码包 Linux软件多数免费、开源,是开发人员编写的,具有很强可读性的一组相关代码文本。 源码包 --> 编...

迷失De挣扎
今天
7
0
IPv4如何转换为IPv6?

ipv6已经逐渐在应用,现在已经有很多的运营商支持ipv6,前天我们也发布了如何让电脑使用ipv6地址?有很多朋友在问?ipv6有什么作用,它的表示方式是什么,今天我们来一起来详细了解下ipv6相关计...

xiangyunyan
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部