美文网首页前端全栈
搭建私有npm服务器教程

搭建私有npm服务器教程

作者: code追命 | 来源:发表于2019-02-23 16:21 被阅读103次

    私有npm服务器搭建

    标签(空格分隔): Node.js


    私有npm服务器搭建

    本次搭建是在ubuntu环境下搭建的,如果其他系统,将个别命令改成自己的

    • 下载cnpmjs.org
    # clone from github
    $ git clone git://github.com/cnpm/cnpmjs.org.git $HOME/cnpmjs.org
    $ cd $HOME/cnpmjs.org
    
    
    • 下载安装mysql
    sudo apt install mysql-server
    
    

    中间会提示设置root 账户的密码
    有的文章提到 还要 install mysql-client 现在不需要了,已经包含了

    • 测试是否安装成功:
    sudo netstat -tap | grep mysql
    
    

    出现如下信息证明安装成功:

    image
    • 进入mysql服务,创建数据库
    # create mysql tables
    $ mysql -u yourname -p
    mysql> create database cnpmjs;
    mysql> use cnpmjs;
    mysql> source docs/db.sql;
    
    
    • 添加个人配置

    config目录下创建config.js文件。(默认只有index.js文件)。在config.js中添加一下配置

    config.js文件会直接覆盖index.js中的默认配置

     module.exports = {
        debug: false,
        enableCluster: true, // enable cluster mode
        enablePrivate: true, // enable private mode, only admin can publish, other use just can sync package from source npm
        database: {
            db: 'cnpmjstest',
            host: 'localhost',
            port: 3306,unknown database cnpmjs
            username: 'cnpmjs',
            password: 'cnpmjs123'  
        },
        admins: {
          admin: 'admin@cnpmjs.org',
        },
        syncModel: 'exist'// 'none', 'all', 'exist',
        sourceNpmRegistry:"http://127.0.0.1/",
        registryHost: '127.0.0.1:7001',
      };  
    
    

    注意

    • enablePrivate:设置为true时只能是管理员(admins里的)发布cnpm包。如果改为false则任何人都可以发布

    • 运行cnpm

    npm run start
    
    
    • 测试运行结果

    在本地访问http://localhost:/7001

    显示

    {"data_tables":{},"disk_size":0,"data_size":0,"index_size":0,"disk_format_version":0,"committed_update_seq":0,"update_seq":0,"purge_seq":0,"compact_running":false,"doc_count":0,"doc_del_count":0,"doc_version_count":0,"user_count":0,"sync_status":0,"need_sync_num":0,"success_sync_num":0,"fail_sync_num":0,"left_sync_num":0,"last_sync_time":0,"last_exist_sync_time":0,"last_sync_module":"","download":{"today":0,"thisweek":0,"thismonth":0,"lastday":0,"lastweek":0,"lastmonth":0},"db_name":"registry","instance_start_time":"1521614106548","node_version":"v4.2.6","app_version":"3.0.0-beta.1","donate":"https://www.gittip.com/fengmk2","sync_model":"exist","cache_time":1521615310970}
    
    

    访问http://localhost:7002.显示cnpm界面。说明安装和运行成功

    上传自己的npm包到私有cnpm服务器

    • 安装cnpm客户端
    sudo npm i cnpm -g
    
    
    • 添加cnpm用户
    cnpm adduser --registry=http://127.0.0.1:7001/
    
    
    • 登录cnpm用户
    cnpm login --registry=http://127.0.0.1:7001/
    
    
    • 创建要上传的私有包
    npm init test -y
    
    
    • 修改npm包名为cnpm
    name:'test'  改为  name:'@cnpm/test'
    
    
    • 发布cnpm
    cnpm publish --registry=http://127.0.0.1:7001/
    
    
    • 其他用户安装发布的包
    cnpm i @cnpm/test --registry=http://127.0.0.1:7001/
    
    

    nrm管理多个npm

    • 安装nrm
    sudo npm i nrm -g
    
    
    • 添加本地cnpm服务为一个源
    nrm add localnpm http://127.0.0.1:7001
    
    

    相关文章

      网友评论

        本文标题:搭建私有npm服务器教程

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