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
- Host: GitHub
- URL: https://github.com/iuap-design/ynpm-tool
- Owner: iuap-design
- Created: 2017-05-16T02:11:44.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2021-06-30T03:06:28.000Z (almost 4 years ago)
- Last Synced: 2025-02-24T13:18:58.249Z (2 months ago)
- Topics: node, npm, package-manager
- Language: JavaScript
- Size: 453 KB
- Stars: 12
- Watchers: 7
- Forks: 6
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
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 (如图)

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
```