使用verdaccio搭建私有npm服务

使用verdaccio搭建私有npm服务

安装

npm install -g verdaccio

启动

verdaccio

配置相关

storage: ./storage
plugins: ./plugins
web:
  title: Verdaccio
auth:
  htpasswd:
    file: ./htpasswd
uplinks:
  npmjs:
    url: https://registry.npmjs.org/
packages:
  '@*/*':
    access: $all
    publish: $authenticated
    unpublish: $authenticated
    proxy: npmjs
  '**':
    access: $all
    publish: $authenticated
    unpublish: $authenticated
    proxy: npmjs
server:
  keepAliveTimeout: 60
middlewares:
  audit:
    enabled: true
logs:
    { type: stdout, format: pretty, level: http }

storage 已发布的包的存储位置,默认存储在 ~/.config/Verdaccio/ 文件夹下

plugins 插件所在的目录

web 界面相关的配置

auth 用户相关,例如注册、鉴权插件(默认使用的是 htpasswd)

uplinks 用于提供对外部包的访问,例如访问 npm、cnpm 对应的源

packages 用于配置发布包、删除包、查看包的权限

server 私有库服务端相关的配置

middlewares 中间件相关配置,默认会引入 auit 中间件,来支持 npm audit 命令

logs 终端输出的信息的配置

权限管控

packages:
  '@*/*':
    access: $all
    publish: $authenticated
    unpublish: $authenticated
    proxy: npmjs
  '**':
    access: $all
    publish: $authenticated
    unpublish: $authenticated
    proxy: npmjs

这里的 key 代表对应权限需要匹配的包名,例如对于第一个,如果我们发布的包名是这样的 @wjc/test 就会命中。每个规则中对应 4 个参数。其中 proxy 代表如果在私有 npm 库找不到,则会代理到 npmjs(对应 unlinks 中的 npmjs 的 https://registry.npmjs.org/)。而剩下的 3 个参数,都是用来设置包相关的权限,它有三个可选值 a l l (所有人)、 all(所有人)、 all(所有人)、anonymous(未注册用户)、$authenticated(注册用户)。那么,下面我们分别看一下这 3 个参数的含义:

access 控制包的访问权限
publish 控制包的发布权限
unpublish unpublish 控制包的删除权限

用户名密码添加到verdaccio

npm who am i
// 查看自己登陆情况
npm adduser --registry http://localhost:4873
// 新增用户 
// 依次输入官网注册的用户、密码和邮箱即可
// 注册登录成功后,可以看到verdaccio的配置文件夹 多了一个文件:htpasswd

上传包

npm init -y
npm publish --registry http://localhost:4873

vuecli3配置 使用Vue插件模式

Vue提供的一个公开方法:install。这个方法会在你使用Vue.use(plugin)时被调用,这样使得我们的插件注册到了全局,在子组件的任何地方都可以使用。
在package目录下新建index.js文件,代码如下:

//package/index.js
import PigButton from "../package/pig-button/index.vue"; // 引入封装好的组件
const coms = [PigButton]; // 将来如果有其它组件,都可以写到这个数组里

// 批量组件注册
const install = function (Vue) {
  coms.forEach((com) => {
    Vue.component(com.name, com);
  });
};
export default install; // 这个方法以后再使用的时候可以被use调用

在这里插入图片描述
组件打包 package.json 添加

"package": "vue-cli-service build --target lib ./src/package/index.js --name esri-map --dest esri-map"

打包命令解释:

–target lib 关键字 指定打包的目录
–name 打包后的文件名字
–dest 打包后的文件夹的名称

然后执行打包命令:npm run package

在打包文件夹执行:npm publish

删除仓库包:npm unpublish 包名 --force --registry 仓库地址

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值