An open API service indexing awesome lists of open source software.

https://github.com/iuap-design/ynpm-tool

Yonyou Package Manager
https://github.com/iuap-design/ynpm-tool

node npm package-manager

Last synced: about 2 months ago
JSON representation

Yonyou Package Manager

Awesome Lists containing this project

README

        

概述

  `ynpm`是一款基于用友内部的镜像库,为用友内部打造一个优质的代码共享平台、业务组件的多样性、组件能力最大化的输出。把各种组件、工具的能力快速输出到各个项目中,提高项目的开发速度、节省项目成本、从而实现组件价值最大化、利益的最大化。

  `ynpm`还提供组件的上传、下载的以及热门组件的统计。进行有针对性的进行组件优化和能力的持续集成。

### ynpm 功能特性

1. 根据用户网络进行自动匹配、自动切换、内网快速下载
2. 镜像无需同步,下载即缓存,实现一次下载,全员共享
3. 安全可靠,友互通域账号权限校验
4. 内网发包配置简单、融合`github`设置`sshk`模式
5. 提供强大的`cli`工具、模块化的实现、快速融合其他cli工具
6. 不对`npm`的镜像源入侵

### 基本原理

1. 使用 Nexus Repository OSS 构建镜像
2. 使用自己独立的数据存储、资源包做统计
3. 使用`koa+node`做中间层做请求转发和校验机制
4. react开发独立的官网站点

## 开始使用

安装

>请确认你在本地全局安装了`Node.js`,然后使用`npm`将`ynpm`全局安装:

```
$ npm install ynpm-tool -g
```

下载 package

```
# 安装到dependencies依赖的包

$ ynpm install @yonyou/xxx --save

# 安装到devDependencies依赖的包

$ ynpm install xxx --save-dev
```

>也可以直接使用简写:

```
$ ynpm i @yonyou/xxx -S
```

>显示ynpm的帮助信息;

```
$ ynpm -h
```

## 发包私有包到 ynpm

2. 设置 ynpm

>用户名必须是登录友互通的用户名

```
$ ynpm set user=xxx
```

>邮箱必须是登录友互通的邮箱或者手机号

```
$ ynpm set email=xxx

```
>显示sshk(不显示sshk见QA)

2. 复制sshk[登陆官网](https://package.yonyoucloud.com/)-->选择头像-->选择设置sshk (如图)

![新增sshk](http://iuap-design-cdn.oss-cn-beijing.aliyuncs.com/static/ynpm/image/8194969-cda1b44fc7272cab.jpeg)

3. 发布

```
$ cd xx_component && ynpm publish
```

>显示finish xx_component 表示成功

[官网搜索包名](https://package.yonyoucloud.com)


发包规范



> package.json 必填项

1. name :模块名称,内部包统一用(@yonyou/xx)作为前缀

2. homepage :组件主页url,eg: http://xx.git#redme

3. author :作者

3. repository :指定一个代码存放地址。string or {}

```
repository:'https://xxx.git'
repository:{'url' : 'https://xxx.git'}
```
[更多npm规范](https://docs.npmjs.com/files/package.json)    [例子](https://github.com/tinper-acs/ac-button/blob/master/package.json)

常用命令



|命令|说明|使用|
|:--|:---|:--|
install / i |安装包 |ynpm install|
update |更新包 |ynpm update|
show |显示包信息 |ynpm show |
list |显示当前安装报的版本 |ynpm list|
reinstall / rei|重装包 |ynpm rei|
sync |同步npm包到ynpm |ynpm sync|
publish |发布包到ynpm |ynpm publish|
set |设置ynpm的用户名 |ynpm set user/email|
version |查看ynpm版本 |ynpm -v|
help |查看帮助 |ynpm -h|
sshk |查看sshk |ynpm sshk|

Q&A常见问题

1. 下载包极慢,报错timeout

根据反馈,少数包会报错。原因是安装包依赖一个外链下载(可能是github或amazon等第三方地址)。因为众所周知的原因,你很有可能下载不到从而出现timeout(相同的问题cnpm也会存在).

2. install 的时候出现 401 权限问题

>请执行

```
rm -rf ~/.ynpmrc
```
3. 发包出现 400、401 的情况

请重新 set 用户名、密码以及设置sshk

4. windows电脑sshk不显示
> window电脑请使用`git bash`窗口模式,执行

```
cat ~/.ynpmrc # _auth后面的就是sshk
```