A48 搭建npm私库

2019-11-26  本文已影响0人  JSleefat

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

参考资料

上一篇 下一篇

猜你喜欢

热点阅读