下载nodejs的压缩包 网址:https://nodejs.org/en/

下载以tar.xz结尾的包例如:node-v8.9.4-linux-x64.tar.xz

上传包到制定的目录 可以用lrzsz

解压:xz -d

node-v8.9.4-linux-x64.tar.xz

然后在 拆包: tar –xvf node-v8.9.4-linux-x64.tar

配置环境变量在/etc/profile

Vim /etc/profilr  最后加入node的变量

export NODE=/root/node-v8.9.4-linux-x64  #node的安装路径

export PATH=$PATH:$NODE/bin          #node的bin目录

推出声明一下

Source  /etc/profile    #环境变量就设好了

查看是否安装成功:出现版本号就是安装成功了

配置npm的源:

npm set registry https://registry.npm.taobao.org/ # 推荐淘宝npm镜像

安装配置sinopia

npm install -g sinopia

启动sinopia

输入: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: /home/{user}/.local/share/sinopia/storage # 库存路径,需要考虑磁盘空间

web: # 自定义web项,即浏览器访问页面

# web interface is disabled by default in 0.x, will be enabled soon in 1.x

# when all its issues will be fixed

# set this to `true` if you want to experiment with web ui now;

# this has a lot of issues, e.g. no auth yet, so use at your own risk

#enable: true

title: Sinopia

# logo: logo.png

# template: custom.hbs

auth:

htpasswd:

file: ./htpasswd # 添加用户(npm adduser)后自动创建,保存用户信息,可以初始化用户

# Maximum amount of users allowed to register, defaults to "+inf".

# You can set this to -1 to disable registration.

#max_users: 1000 # 设置为-1不能npm adduser

# a list of other known repositories we can talk to

uplinks: # 可以配置多个上游地址,后面packages中的proxy指定用哪个

npmjs:

url: https://registry.npm.taobao.org/ # 更改此上游地址

# amount of time to wait for repository to respond

# before giving up and use the local cached copy

#timeout: 30s # 请求上游地址超时时间

# maximum time in which data is considered up to date

# default is 2 minutes, so server won't request the same data from

# uplink if a similar request was made less than 2 minutes ago

#maxage: 2m # 包过期时间

# if two subsequent requests fail, no further requests will be sent to

# this uplink for five minutes

#max_fails: 2 # 容许依赖请求最大失败数

#fail_timeout: 5m # 依赖请求超时时间

packages: # 包的权限管理,$all为所有人,$authenticated为通过验证人

# 分布和安装两种权限,值可以特指某几人

'@*/*': # 跟package.json中的name属性进行匹配

# 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"

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}

listen: 0.0.0.0:4873 # 设置监听地址,0.0.0.0匹配本机地址

# if you use nginx with custom path, use this to override links

#url_prefix: https://dev.company.local/sinopia/

# Configure HTTPS, it is required if you use "https" protocol above.

#https:

#  key: path/to/server.key

#  cert: path/to/server.crt

# you can specify proxy used with all requests in wget-like manner here

# (or set up ENV variables with the same name)

#http_proxy: http://something.local/ # 设置代理服务器

#https_proxy: https://something.local/

#no_proxy: localhost,127.0.0.1

# maximum size of uploaded json document

# increase it if you have "request entity too large" errors

#max_body_size: 1mb # http请求body大小

修改uplinks及listen值,同上,重启sinopia
如果想引用别的配置文件,请通过sinopia -c <配置文件>指定

用pm2托管sinopia

上面方式启动sinopia只是暂时的,退出命令行就没有了,因此需要一个长期开启sinopia方案,通过pm2托管,可以让sinopia进程永远活着,就算意外挂了也可自动重启。
安装pm2

$ npm install -g pm2

安装完后,使用pm2启动sinopia

$ pm2 start sinopia

关闭时

pm2 stop sinopia

最后更改npm源地址为私有库地址

$ npm set registry http://{服务器ip}:4873/ # 内网测试可行

Nrm是npm的管理工具:

nrm的安装:

添加私有仓库

nrm add mynpm http://192.168.44.139:4873

使用私有仓库

nrm use mynpm

测试私有仓库

$ mkdir test
$ cd test
$ npm install webpack # 第一次安装比较慢
...
 
$ rm -rf webpack
$ npm install webpack # 第二次安装就比较快了

搭建好私有npm仓库后遇到什么坑?

我发现使用nrm切换到私有npm仓库对应的源后,下载带@ 符号的包都下载失败,比如下载 @angular/core,就会下载失败,这是为什么呢,查阅了一些资料,发现这其实是Sinopia自己的bug,bug产生的原因就是:sinopia在代理到npmjs.org公有库时将@符号转码为%40,致使在公有库中找不到对应的包,返回404 ,简单点说就是 @angular/core 代理请求的时候被转换成了 %40angular/core,所以我们需要在代理请求发出之前将其转回 @angular/core

修改sinopia源码:修改位于sinopia/lib/up-storage.js文件第10行:将var encode = encodeURIComponen;,更改为:var encode = function(thing) {return encodeURIComponent(thing).replace(/^%40/, '@');}; ,这段代码的含义就是将%40转回@,于是就解决了不能下载带有@符号的npm包的bug

现在sinopia不好用有时解决不了下载带@ 符号的包都下载失败的问题 ,就不需要安装sinopia可以安装更好的verdaccio

安装 verdaccio

npm  install –g verdaccio

安装完以后可以启动

verdaccio 例:

会显示撇子文件的路径等等,但是这个是其他运行,退出终端就挂,所以要安装mp2 来管理verdaccio

修改配置文件Verdaccio

cd  /root/.config/verdaccio

vim  config.yaml  (实例)(也可以参考https://verdaccio.org/docs/en/configuration)

(2)安装pm2进程管理 并启动verdaccio服务

•npm install –g pm2

•ls –s/root/node-v6.9.5-linux-x64/bin/pm2 /usr/local/bin/pm2  (这不可以不做)

•pm2 start `which verdaccio`   #启动


网上的资料散 搞了好半天,总算完成了  哈哈哈哈

可以参考  https://segmentfault.com/a/1190000005790827

ndoe.js 和npm私有仓库的搭建的更多相关文章

  1. NPM 私有仓库的搭建

    NPM 私有仓库的搭建 为什么搭建私有仓库 balabala,当然是有需求的时候嘛 搭建流程 介绍和安装verdaccio 备注: 程序启动后,配置文件为/home/work/.config/verd ...

  2. 使用verdaccio 搭建npm私有仓库

    使用verdaccio 搭建npm私有仓库 1. 为什么要搭建私有的npm仓库?    随着公司的业务越来越复杂,项目迭代速度也越来越快,那么项目间的常用的业务代码共享变得非常之有必要.但是对于公司的 ...

  3. docker学习------docker私有仓库的搭建

    192.168.138.102:23451.私有仓库的搭建(docker pull registry),拉取最新的镜像 2.查看拉取的仓库镜像(docker images) 3.启用registry镜 ...

  4. docker 私有仓库简易搭建

    概要 本地私有仓库 局域网私有仓库 总结 概要 docker hub 使用非常方便,而且上面有大量的镜像可以使用. 但是,每次都远程下载镜像速度非常慢,如果能在本地做一个 docker 的仓库,多人协 ...

  5. Git 安装及用法 github 代码发布 gitlab私有仓库的搭建

    版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统. 这个版本控制软件,有 svn还有git,是一个工具. git是由linux的作者开发的 git是一个分布式版本控制系统 ...

  6. 使用 docker + verdaccio 搭建npm私有仓库

    本文介绍如何使用 verdaccio 搭建私有npm仓库,以及使用 docker 时如何映射到本地目录,方便简单对仓库进行各种操作.系统环境是 Linux. verdaccio verdaccio 是 ...

  7. 使用verdaccio+docker搭建npm私有仓库以及使用

    公司内部前端组件或库的共享等,搭建一个npm私有库就很方便,现在中大型公司也基本都有自己的npm私有库,这篇文章,和大家一起共同搭建一个npm私有库,共同学习 前置条件 一台电脑 可以联网 一.安装d ...

  8. npm私有仓库 配置verdaccio在docker环境

    前端开发过程中,少不了自己封装一些通用的包,但又不想放在公共的平台,所以搭建一个npm私有的仓库是很有必要的. 在这里简单介绍如何使用 verdoccio 在docker环境下的配置.verdocci ...

  9. Docker私有仓库Registry 搭建

    1. 关于Registry 官方的Docker hub是一个用于管理公共镜像的好地方,我们可以在上面找到我们想要的镜像,也可以把我们自己的镜像推送上去.但是,有时候,我们的使用场景需要我们拥有一个私有 ...

随机推荐

  1. Lunx下 怎样启动和关闭oracle数据库

    1.因为oracle运行在Linux系统下,首先,要连接Linux系统 2.切换到oracle安装用户下. 我的是 ora12. 3.运行oracle的环境变量, 以便输入相关命令. 4.进入orac ...

  2. 部署java项目到服务器

    1.首先判断服务器是什么系统 linux,windows 2.如果是linux使用SSH进行链接 3.如果是windows使用远程桌面进行链接 1.windows+R->mstsc进行远程桌面的 ...

  3. WebGoat 8安装、配置、使用教程(CentOS)

    一.说明 1.1 背景说明 之前只用过dvwa,听说WebGoat也是类似的平台后,想装来试试有没有什么异同. 看了下载文件,和网上官方的.非官方的安装教程,感觉很多都对不上: 最后发现WebGoat ...

  4. Windows与Linux的回车换行转换

    最初"\r"(return)表示“回车”即回到行首,“\n”(next)表示“换行”即定位到下一行:UNIX和Linux使用“\n”换行,而Windows用“\r\n”(不是\n\ ...

  5. 牛客网 PAT 算法历年真题 1003: 数素数 (20)

    1003:数素数 (20) 时间限制 1000 ms 内存限制 32768 KB 代码长度限制 100 KB 判断程序 Standard (来自 小小) 题目描述 令Pi表示第i个素数.现任给两个正整 ...

  6. 使用Spring Security安全控制(二十六)

    准备工作 首先,构建一个简单的Web工程,以用于后续添加安全控制,也可以用之前Chapter3-1-2做为基础工程.若对如何使用Spring Boot构建Web应用,可以先阅读<Spring B ...

  7. numpy ndarray

    >>> aarray([[1, 2], [3, 4]])>>> a.shape(2, 2)>>> barray([2, 3])>>&g ...

  8. error: http://ppa.launchpad.net lucid Release: The following signatures couldn't be verified because

    ubuntu 命令行sudo apt-get update W: GPG error: http://ppa.launchpad.net lucid Release: The following si ...

  9. linux系统管理 计划任务

    一次性计划任务 命令: at 语法: at [-f 文件名] 时间 绝对计时方法 HH:MM yyyy-MM-dd 相对计时方法 now + n minutes now+n hours now + n ...

  10. html 多媒体使用

    HTML插件 辅助应用程序(helper application)是由浏览器启动的程序,辅助应用程序也称为插件. 辅助应用程序可用于播放音频和视频(或其他 ).辅助程序是使用<Object> ...