美文网首页
A48 搭建npm私库

A48 搭建npm私库

作者: JSleefat | 来源:发表于2019-11-26 11:16 被阅读0次

npm私库搭建

搭建准备

  • node
  • cnpmjs
  • mysql
  • docker(可选)

方案:

  • sinopia
    最近一次github更新4 years ago
    太久未维护

  • verdaccio
    sinopia的fork 担心也会停止维护

  • git+ssh
    据说权限管理复杂

  • cnpmjs
    淘宝 NPM 镜像 (本次选择)

npm私有库搭建步骤

  1. 克隆cnpmjs
    安装依赖并启动,7001为注册服务,7002为web页
  2. 下载mysql
    可选择安装workbench可视化编辑
  3. 配置cnpmjs数据库信息
    指向数据库所在位置,配置登录信息
  4. 配置私库地址
    更改config中的registryHost
    修改libs下面的download连接格式

tips:可用nrm 管理npm仓库

发布npm包

  1. 添加用户到admins
    cnpm adduser --registry=http://192.168.17.169:7001/
    Username: admin
    Password: 设置密码
    Email: (this IS public) 上面修改后的邮箱地址

  2. 登录
    cnpm login --registry=http://192.168.17.169:7001/

  3. 发布包
    如果设置了scopes
    // registry scopes, if don't set, means do not support scopes
    scopes: [ '@cnpm', '@cnpmtest', '@cnpm-test', '@jnpm' ],
    需要在发布包中的package.json上添加scope前缀
    "name": "@jnpm/jhello",
    然后才能执行发布的命令
    cnpm publish --registry=http://192.168.17.169:7001/

  4. 下载包
    cnpm install --registry=http://192.168.17.169:7001/

tips:设置scopes后,package.json中的依赖包也需要添加前缀, 像这样

"dependencies": {
    "@jnpm/jumatable":"^1.0.0",
    "@jnpm/jumahello":"^1.0.0"
}

一些报错信息

  1. mysql报错
    动作:项目运行
    错误信息:ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client
    原因:mysql不同版本密码算法不一致
    解决方法:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';
  2. node报错
    动作:执行node --harmony_generators dispatch.js时
    错误信息:node: bad option: --harmony_generators
    原因:当前node版本不支持--harmony_generators选项
    解决方法:可以更换命令node dispatch.js来启动,或者升级node到最新版本
  3. publish模块报错
    动作:cnpm publish [组件名]
    错误信息:only allow publish with @cnpm, @cnpmtest, @cnpm-test scope(s)
    原因:私有库设置了scopes
    解决方法:在package.json中的name字段添加scopes前缀
  4. install模块报错
    动作: npm install --registry=http://192.168.17.169:7001
    错误信息:404
    原因:安装时并没有从本地获取包,而是从线上获取
    解决方法: cnpm install --registry=http://192.168.17.169:7001
    过程:试了很多网上的解决方法,修改config中的registryHost;修改libs下面的download连接格式,最后更换cnpm才得以安装

使用docker

  1. 修改cnpmjs中的docker配置
    将docs-dockerize-config.js与我们自定义添加的config-config.js中的配置修改一致
  2. 生成镜像
    docker build -t juma/cnpm:127 .
  3. 运行镜像
    docker run juma/cnpm:127

tips:
删除容器:docker rm $(docker ps -aq);
删除镜像:docker rmi ID/NAME

参考资料

相关文章

  • A48 搭建npm私库

    npm私库搭建 搭建准备 node cnpmjs mysql docker(可选) 方案: sinopia最近一次...

  • 搭建NPM私库-verdaccio

    前言 公司内部统一使用一套相同的UI组件,将该组件发布到私有服务器上,方便不同子公司开发管理。 想法 通过网上相关...

  • nexus搭建npm私库

    nexus3的安装 可戳Linux nexus3的搭建[https://www.jianshu.com/p/5af...

  • 搭建npm私库(超简单)

    原因 我搭私库的原因很简单,目前正在开发一个组件库,提供给公司内部使用,我不想去注册npm,也不想等待npm的审核...

  • 在linux上搭建npm私库

    写在最最前 由于cnpm已经不维护了,有很多问题都得不到解决,于是我又转向了verdaccio的怀抱。这是sino...

  • 用verdaccio搭建本地npm私库

    verdaccio:https://github.com/verdaccio/verdaccio基础环境:node...

  • npm私库发布模块

    npm私库是通过nexus搭建的。nexus的版本是3.x,后面相关的介绍主要是在nexus3.x基础上进行说明的...

  • NPM发布私库

    1.npm init包名 @xxx/reative-network2.npm adduser --registry...

  • 在centos上安装MySQL

    因为要搭建npm私库不得不用到mysql,所以才去了解一下mysql在linux的安装过程,这篇文章完全是在大神的...

  • npm私库推送 撤销...

    1.常用npm addUser---npm login---npm publish ---npm unpublis...

网友评论

      本文标题:A48 搭建npm私库

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