企业私有npm部署和实现npm发布

栏目: 数据库 · 发布时间: 5年前

内容简介:[TOC]背景:  为了逼格的提升。简单的啰嗦一下,可忽略。

私有npm部署

[TOC]

背景:  为了逼格的提升。简单的啰嗦一下,可忽略。

  1. 目前我们团队中的多个项目是同时进行开发的,每个项目中组件都有非常高可复用型。当遇到之前某一块的业务场景需要进行升级的时候,为了减少去每一个项目中修改大量代码的时间,我们只需要在私有的cnpm厂库修改一次,然后依次在每个项目中npm update对应的包,问题就解决了。
  2. 方便查看团队中有多少组件以及组件如何使用,让每个成员有了提取组件动力,促进团队快速成长。
  3. 开发过程中不乏遇到赶工期,偏偏这个时候又遇到复杂的业务。在此之前是先把之前做的项目代码阅读一边,在把关键代码复制过来,进行调试。恰巧代码不是自己写得。又要可能花费一部分时间去阅读以下代码逻辑。我的天呀!是不是小半天过去了,还能不能愉快的吃鸡了。

一、部署方式

  • 私有npm部署方式
    1. cnpm
    2. sinopia
    3. verdaccio
  • 选择cnpm原因
    1. cnpm中服务端通过koa框架进行开发,方便后续查看源码。
    2. 支持 msyql,数据迁移方便,
    3. 国内cnpm团队开发,遇到问题方便查找。

二、前期准备

  1. linux环境(mac用户忽略)
  2. mysql安装
  3. navicate连接mysql
  4. nrm管理npm源

三、cnpm安装

  1. 下载cnpmjs
    #clone from github
     $ git clone git://github.com/cnpm/cnpmjs.org.git
     $ cd cnpmjs.org
     #create mysql tables,在cnpm 目中进行启动mysql
     $mysql -u root -p
     mysql> create database cnpmjs
     mysql> use cnpmjs;
     mysql> source docs/db.sql
    复制代码
  2. 修改配置文件
    • 为防止误操作建议不要修改config/index.js。我们在config目录下新建index.js
    $ vim config/config.js
    复制代码
    module.exports = {
        debug: false,
        database: {
        db: 'cnpmjs', // 数据库名,默认为cnpmjs_test
        host: '127.0.0.1', // 服务器地址
        port: 3306, // 端口
        username: 'root', // 用户名,
        password: '123456', // 对于cento或ubuntu如果用root用户名连接数据库,这里请设置密码为空.非root请正常填写
        dialect: 'mysql' // 使用mysql,默认为sqlite, 还支持postgres,mariadb,暂时不支持oracle
        },
        admins: {
        admin: 'admin@cnpmjs.org' // 管理员权限
        },
        scopes: ['@vt'], // 私有包必须依附于 scope 下
        registryHost: '127.0.0.1:7001', //替换服务器ip
        bindingHost: '0.0.0.0'
      };
    复制代码

3.启动服务

  • window用户
    #cnpmjs.org目录中启动
    node diapatch.js  
    复制代码
  • 非window通过
    npm start
    npm restart
    npm stop
    复制代码
    asdf

四、cnpm包的发布

``
    nrm add local http://127.0.0.1:7001/
    nrm use local
    nrm ls
    npm login
    npm publish
    # 查看包的详细信息
    npm info
    #新建一个项目进行下载
    npm install @vt/zhangle
```
复制代码

五、爬坑秘籍

  • 建议使用 git clone git://github.com/cnpm/cnpmjs.org.git 不建议使用 全局安装 通过npm install cnpmjs.org进行安装的,需要找到全局安装cnpmjs.org位置( /root/.nvm/versions/node/v10.15.3/lib/node_modules/cnpmjs.org) ,修改config/config.js 通过cnpmjs.org start
  • cnpm 7002 可以正常访问,7001端口访问失败.这种情况最大可能是没有连接数据库.
  • 启动过程出现问题绝大多数都是config/index.js配置问题.
  • 阿里云外部想要访问需要做以下处理安全策略端口7001和7002是否对外开放.
  • navicate不能连接 mysql 数据库
``
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)

mysql>FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

```
复制代码
  • 如果用 sqlite 3不能访问7001,需要node ./models/init_script.js sqlite 进行初始化

后续

  • 没有npm列表,只能通过搜索后续补充,需要进行优化界面
  • 目前还没有组件开发的规范文档.
  • 服务端 docker 部署未完成

参考资料

  1. github cnpm
  2. docker cnpm
  3. sinopia

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

机器消灭秘密

机器消灭秘密

安迪•格林伯格 (Andy Greenberg) / 王崧、王涛、唐禾 / 重庆出版社 / 2017-8-10 / 49.8

《机器消灭秘密》一书中,格林伯格深入研究并生动再现了那些拥有全能技术的网络安全魔术师,他们将任何企图染指个人隐私的所谓国家机密的保密性打得粉碎。这本精心组织的著作是对此题材感兴趣的读者的必读之书,即便现在你可能不感兴趣,将来也极有可能希望了解这些内容,因为任何人都会不可避免地置身其中。无论你是初涉电脑屏幕之后的虚拟战场的新生,还是经验丰富的维基解密观察家,本书都是不可多得的上乘之作,你总会在其中发......一起来看看 《机器消灭秘密》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具