美文网首页
搭建CNPM私有仓库(cnpmjs.org)

搭建CNPM私有仓库(cnpmjs.org)

作者: 喜剧之王爱创作 | 来源:发表于2020-11-13 09:56 被阅读0次

    本文为自己开发中的总结,有问题和错误欢迎指正

    环境准备

    到写下本文时,本人环境版本如下

    • Node: 12.16.3
    • mysql: 8.0.19
    • npm: 6.14.5
    • 操作系统win10(cnpm不支持win部署,到时候可修改启动命令,有Linux环境更佳)

    安装cnpmjs.org

    git clone https://github.com/cnpm/cnpmjs.org.git
    
    cd cnpmjs.org
    
    npm install
    

    以上都是前端常规操作,不做特殊介绍,可能出现安装依赖报错(我没遇到),升级npm至最新版即可

    创建数据库

    服务能不能起来,主要取决于数据库的配置,和下面的配置,我们先把基础配置配好,再去导入数据库相关表。

    1. 首先,打开cnpmjs.org项目目录下的config/index.js文件,我们需要配置数据库的连接,找到如下字段:
      database: {
        db: 'cnpmjs',
        username: 'root',
        password: '******',
    
        // the sql dialect of the database
        // - currently supported: 'mysql', 'sqlite', 'postgres', 'mariadb'
        dialect: 'mysql',
    
        // custom host; default: 127.0.0.1
        host: '127.0.0.1',
    
        // custom port; default: 3306
        port: 3306,
    
        // use pooling in order to reduce db connection overload and to increase speed
        // currently only for mysql and postgresql (since v1.5.0)
        pool: {
          maxConnections: 10,
          minConnections: 0,
          maxIdleTime: 30000
        },
    
        dialectOptions: {
          // if your server run on full cpu load, please set trace to false
          trace: true,
        },
    
        // the storage engine for 'sqlite'
        // default store into ~/.cnpmjs.org/data.sqlite
        storage: path.join(dataDir, 'data.sqlite'),
    
        logging: !!process.env.SQL_DEBUG,
      },
    
    • db配置为你将要创建的数据库名称,包括你的数据库用户名和密码,这里我使用的是我的本地用户名和密码,将来可用生产数据库。
    • dialect:该字段默认为sqlite,因为我这里使用的是Mysql,需要改成'mysql'
    • 其他字段不变,先采用默认值。
      以上是数据库连接的相关配置,该配置文件中,还有其他配置项需要注意,这里参考以下博客
      https://blog.csdn.net/weixin_34138255/article/details/91371514
    1. 导入数据库
      本人数据库菜鸟,全部使用图形化操作,我使用的Navicat。
    • 创建数据库,名字为以上配置文件中的名字,如'cnpmjs'
    • 导入数据库配置文件(右击'表',点运行SQL文件,常规操作不再赘述)
    • 配置文件位于 \docs\db.sql,正确的导入会生成16张表。(表的数量以及其他数据库配置和cnpmjs的版本有关,我们之前安装的是最新版,这里是16张表)

    启动项目

    上面对照着文档已经推荐链接中的博客,配置没问题的话就可以启动,我使用的是

    node dispatch.js
    

    服务起来后,会在本地localhost或(127.0.0.1)下起两个端口,其中7002是web端口,通过浏览器访问,7001是服务端口,用于将来管理代码。连个端口都可配置,在上面配置文件中比较容易找到,没啥特殊情况,建议采用默认配置。
    我们浏览器访问7002就可以看到CNPM的界面了。

    如果你的环境版本都是最近的新版本,应该不会出现什么问题

    同步数据

    考虑到我们的开发环境为内网,不具备互联网,这里得需要我们手动去同步NPM到我们的私有仓库(时间很长,文件很多,很占内存)

    同步方式

    我们先尝试着在我们现有的仓库内搜某有个包,这时候会出现找不到包,下面的提示页面中就会有同步NPM的操作,点击同步就行了,第一次同步时间相当漫长,期间不要切换页面,因为我们在本地安装搭建的环境,模块的资源都是保存到本地的,我同步了10分钟,大概4千多个包测试了一下,占了我盘3G内存,心塞关掉,经测试,这一块没问题,到时候生产也这么做就行。

    发布npm包

    和发布npm的过程类似。大概过程分为:

    1. 你得有一个cnpm私服的账号
    2. 根目录下执行npm adduers,添加用户名密码
    3. 运行npm publish,将包发布到npm仓库中,但是,我们的仓库名很容易和线上已有包重名,造成发布失败,这就需要我们把名字起的独特一点,如果你的在cnpm私库下面,还需要有作用域来解决这一问题。
      npm install 试试使用的库吧!

    写在最后

    按照网上教程走下来的,基本数据库配置没有问题,就不会有啥问题。

    ok,就这样了,

    (完)

    相关文章

      网友评论

          本文标题:搭建CNPM私有仓库(cnpmjs.org)

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