美文网首页
centos7 搭建公司私有的cnpm 包

centos7 搭建公司私有的cnpm 包

作者: 易剑圣 | 来源:发表于2019-08-12 10:30 被阅读0次

    首先你已经安装了centos7虚拟机,下面是在centos7下完成的

    安装node

    下载 nodejs压缩包

     将包复制到服务器root目录下,路径:用户名@服务器ip:目录

    scp node-v10.16.1-linux-x64.tar.gz root@192.168.10.110:/root/

    解压

    tar -xvf node-v10.16.1-linux-x64.tar.gz

    3.部署bin文件

    ln -s ~/node-v10.16.1-linux-x64/bin/node /usr/bin/node

    ln -s ~/node-v10.16.1-linux-x64/bin/npm /usr/bin/npm

    4.查看版本 node -v    npm -v

    npm install --unsafe-perm  //这是解决gyp报错的方法

    安装git 这个可以不安装

    yum install git

    mysql 安装

      wget http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

      rpm -ivh mysql57-community-release-el7-11.noarch.rpm

      yum install mysql-community-server

    当 node npm mysql  已经安装完毕,就执行下面步骤

    服务器端

    安装 cnpmjs.org 在root目录执行

    npm i -g cnpmjs.org

    vi /root/node-v10.16.1-linux-x64/lib/node_modules/cnpmjs.org/config/index.js

    修改下列项

     bindingHost: '',  //监听绑定的 Host,默认127.0.0.1,外网访问注释掉此项即可

      database config //数据库相关设置

      database: {

          db: 'cnpmjs',      //数据库名称

          username: 'root',      //数据库访问账号

          password: '123456',          //数据库访问密码

          // the sql dialect of the database

          // - currently supported: 'mysql', 'sqlite', 'postgres', 'mariadb'

          dialect: 'mysql',      //使用数据库,默认sqlite,这里我们改成mysql

          // custom host; default: 127.0.0.1

          host: '127.0.0.1',      //数据库访问IP,通常127.0.0.1

          // custom port; default: 3306

          port: 3306,            //数据库访问端口,通常3306

          // registry url name //模块注册列表访问域名,默认r.cnpmjs.org,安装模块时会到这个域名下查找,这个默认设置略坑,建议没有外网域名的先清空回头再配

          registryHost: '',

          // default system admins    //默认管理员账号

          admins: {

            // name: email

            //fengmk2: 'fengmk2@gmail.com',

            admin: 'admin@cnpmjs.org',

            //dead_horse: 'dead_horse@qq.com',

          },

          // registry mode config  私有模块发布相关配置

        //是否开启私有模式,默认为 false;

        //私有模式下只有管理员能发布模块,其他账号只有同步权限

        //非私有模式,注册用户都可以发布模块

        enablePrivate: false,

        // registry scopes

        //若为非私有模式发布则此项必填,非管理员发布模块式命名必须以scopes字段开头,模块命名示例“@cnpm/packagename”

        //更多了解npm-scope请查阅https://docs.npmjs.com/misc/scope

        scopes: [ '@cnpm', '@cnpmtest', '@cnpm-test' ],

        // 私有模块非scopes白名单,各种非以scope方式发布的老模块的白名单管理,数组形式维护

        privatePackages: [],

        // sync configs 同步源仓库相关设置

      //npm官方registry地址,不会直接从这个地址同步模块,但有时会从这里获取模块信息,除非必要请勿更改

      officialNpmRegistry: 'https://registry.npmjs.com',

      officialNpmReplicate: 'https://replicate.npmjs.com',

      //同步模块上游registry地址

      sourceNpmRegistry: 'https://registry.npm.taobao.org',

      //上游registry是否是cnpm,默认true,若要使用npm官方地址作为同步上游,请设置为false

      sourceNpmRegistryIsCNpm: true,

      //若安装时模块不存在,是否向源registry进行同步,默认true

      syncByInstall: true,

      // 同步模式选项

      // none: 不进行同步,只管理用户上传的私有模块,公共模块直接从上游获取

      // exist: 只同步已经存在于数据库的模块

      // all: 定时同步所有源registry的模块

      syncModel: 'exist', // 'none', 'all', 'exist'

      // 同步时间间隔,默认10分钟

      syncInterval: '10m',

      // 是否同步模块中devDependencies,默认false

      syncDevDependencies: false,

      //用户账号系统接入,可以扩展接入公司的账号系统

      //本文暂不涉及,详见https://github.com/cnpm/cnpmjs.org/wiki/Use-Your-Own-User-Authorization

      userService: null,

    按 esc

    :wq 就报错退出

    配置完成之后

    mysql -uroot 进入数据库  或者  mysql -u root -p

    创建cnpm所需的数据库

    create database cnpmjs;

    切换到cnpm数据库

    use cnpmjs;

    导入cnpm数据库配置文件 文件位于cpm安装目录docs/db.sql下

    source docs/db.sql;

    在 cnpm.org目录下 安装依赖

    npm install

    启动cnpm.org

    npm run start

    启动数据库

     mysql 启动 ,注意是mysqld

      启动 

     service mysqld start

      如果不成功

      mysqld --user=root --skip-grant-tables &

      如果已经启动

      ps -e |grep mysql  // 查看进程

      kill -9 id号   //结束对应进程

      mysqld --user=root --skip-grant-tables &

    vim /etc/rc.local  自动启动, 这里没有实验,可以试一下

    添加

    service mysqld start

    正常情况,就可以看到页面了

    注意如果仓库页面能访问,而搜索报错的话,肯定是数据库启动失败了,重启一下数据库

    客户端

    npm i -g cnpm

    把cnpm的registry指向我们的私有npm服务ip,端口使用registry端口;

    cnpm config set registry http://192.xxx.x.x:7001

    cnpm login

    登陆成功之后

    cnpm publish  // 就可以了

    如果报错,看看报什么错,对应解决一下

    总结:

    准备: node npm mysql 确保安装好

    安装 cnpmjs.org

    修改 cnpmjs.org的配置

    启动 cnpmjs.org

    启动数据库

    相关文章

      网友评论

          本文标题:centos7 搭建公司私有的cnpm 包

          本文链接:https://www.haomeiwen.com/subject/fueyjctx.html