使用 cnpmjs.org 搭建 npm 私有仓库

前言

在前端开发中,有时候多个项目会公用一个未发布到 NPM 上的组件,通过共享目录共享不是一个好的方法。为了解决这个问题搭建一个 NPM 私有仓库

虚拟环境准备

  1. 使用 vagrant 安装 centos/7
  $ mkdir npm_server
  $ cd npm_server
  $ vagrant init centos/7 # 初始化 Vagrant �环境
  $ vagrant box add centos/7  # 添加官方虚拟机
  $ vagrant up       # 启动虚拟机

本阶段可以忽略不计,你只需要一个 Linux 环境即可。如果使用 vagrant 作为虚拟机管理工具,请参考 vagrant 官网。虚拟机用户名密码都是 vagrant

配置 node 环境

使用 nvm 安装和管理 node 的版本

  1. 安装 nvm
$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.6/install.sh | bash
  1. 执行环境变量
$ source ~/.bashrc
  1. 安装 node
  nvm install 8.9.1

安装 mysql

  1. 安装命令

    yum -y install mariadb mariadb-server
    
  2. 启动 mariadb

    systemctl start mariadb
    
  3. 设置开机启动

    systemctl enable mariadb
    
  4. 接下来进行MariaDB的相关简单配置

    mysql_secure_installation
    
  5. 首先是设置密码,会提示先输入密码

    Enter current password for root (enter for none):<–初次运行直接回车    
    
  6. 设置密码

    Set root password? [Y/n] <– 是否设置root用户密码,输入y并回车或直接回车
    New password: <– 设置root用户的密码
    Re-enter new password: <– 再输入一次你设置的密码
    
  7. 其他配置

    Remove anonymous users? [Y/n] <– 是否删除匿名用户,回车
    Disallow root login remotely? [Y/n] <–是否禁止root远程登录,回车,
    Remove test database and access to it? [Y/n] <– 是否删除test数据库,回车   
    Reload privilege tables now? [Y/n] <– 是否重新加载权限表,回车
    
  8. 创建数据库

      create database npm charset utf8;
      sourcd $cnpm.org/docs/db.sql
    

安装 cnpm.org

  1. 下载代码

    $ git clone https://github.com/cnpm/cnpmjs.org.git
    $ cd cnpm.org 
    $ npm install 
    
  2. 配置 cnpmjs

你可以在 $cnpmjs.org/config 目录下面新建一个 config.js ,也可以编辑 index.js,因为 index.js 会检测同级目录下面是否有 config.js,如果存在则合并。然后修改下面的配置参数。

    registryPort: 7001, # 包下载和发布的端口
    webPort: 7002,      # web 页面端口
    bindingHost: '192.168.1.2', # 本机IP,192.168.1.2,��
    admins:{                # 添加管理员
        admin:'[email protected]'
    },

    database: {             # 数据库配置
        db: 'npm',
        username: 'root',
        password: '000000',   
    },

    registryHost: '192.168.1.2:7001', # npm install 包的地址
    enablePrivate: true,    # 是否允许私有模式
    scopes: [ '@du' ],      # 包的作用域

你可能感兴趣的:(使用 cnpmjs.org 搭建 npm 私有仓库)