All Projects → cevio → cpm

cevio / cpm

Licence: other
🚀 A Lightweight NPM Private Active Management Service.We don't design a scheme to synchronize to local caching. We only focus on building private active CRUDs that are compatible with NPM public package downloads.

Programming Languages

javascript
184084 projects - #8 most used programming language
TSQL
950 projects
HTML
75241 projects

Projects that are alternatives of or similar to cpm

poetry.el
Python dependency management and packaging in Emacs
Stars: ✭ 110 (+64.18%)
Mutual labels:  package-manager
Tatin
Tatin is a package manager for Dyalog APL
Stars: ✭ 16 (-76.12%)
Mutual labels:  package-manager
pakket
The last package manager macOS will ever need. Simple, functional, and fast.
Stars: ✭ 20 (-70.15%)
Mutual labels:  package-manager
capstan
Capstan, a tool for packaging and running your application on OSv.
Stars: ✭ 19 (-71.64%)
Mutual labels:  package-manager
pkgcore
a framework for package management
Stars: ✭ 91 (+35.82%)
Mutual labels:  package-manager
modget-minecraft
The Minecraft Mod Package Manager!
Stars: ✭ 47 (-29.85%)
Mutual labels:  package-manager
cppm
c++ package manager only use CMake
Stars: ✭ 37 (-44.78%)
Mutual labels:  package-manager
nix-portable
Nix - Static, Permissionless, Installation-free, Pre-configured
Stars: ✭ 356 (+431.34%)
Mutual labels:  package-manager
rubigo
[DEPRECATED] Golang vendor utility and package manager
Stars: ✭ 44 (-34.33%)
Mutual labels:  package-manager
strongbox
a World of Warcraft Addon Manager aimed at Linux players
Stars: ✭ 131 (+95.52%)
Mutual labels:  package-manager
dpkg
Debian package manager (mirror)
Stars: ✭ 41 (-38.81%)
Mutual labels:  package-manager
zap
⚡ Delightful AppImage package manager
Stars: ✭ 354 (+428.36%)
Mutual labels:  package-manager
vpm
Package Manager for VVVV
Stars: ✭ 20 (-70.15%)
Mutual labels:  package-manager
available
Scan npm for available package names
Stars: ✭ 98 (+46.27%)
Mutual labels:  package-manager
scoop-directory
A searchable directory of buckets for the scoop package manager for Windows
Stars: ✭ 721 (+976.12%)
Mutual labels:  package-manager
dppm
An easy way to install and manage server applications
Stars: ✭ 107 (+59.7%)
Mutual labels:  package-manager
npackd-cpp
Package manager for Microsoft Windows (GUI and command line utility)
Stars: ✭ 123 (+83.58%)
Mutual labels:  package-manager
bingo
The missing package manager for golang binaries (its homebrew for "go install")
Stars: ✭ 177 (+164.18%)
Mutual labels:  package-manager
choco
Chocolatey - the package manager for Windows
Stars: ✭ 8,643 (+12800%)
Mutual labels:  package-manager
qompoter
Dependency manager for Qt / C++.
Stars: ✭ 19 (-71.64%)
Mutual labels:  package-manager

新版本已出,建议前往NILPPM下载最新版本。此CPM不再维护。

China Package Manager

CPM

WHat is CPM?

CPM 是一套轻量且基础功能完善的私有Node包管理源。它是基于 clusicrex 架构开发,拥有进程负载均衡的特点。它主要提供一整套简易安装模式,用户只需要clone此项目到本地,修改config文件夹下的文件即可运行。它的数据源基于mysql数据库和redis缓存(支持redis集群),能够有效提高NPM包的下载速度。它还拥有自定义用户系统接入的功能,让企业可以自主接入自己的用户体系,同时可以根据用户的scopes来确定用户提交私有包的权限。

更多查看 文档

Command support

$ npm login --registry=http://npm.test.cn
$ npm logout --registry=http://npm.test.cn
$ npm install (with no args, in package dir) --registry=http://npm.test.cn
$ npm install [<@scope>/]<name> --registry=http://npm.test.cn
$ npm install [<@scope>/]<name>@<tag> --registry=http://npm.test.cn
$ npm install [<@scope>/]<name>@<version> --registry=http://npm.test.cn
$ npm install [<@scope>/]<name>@<version range> --registry=http://npm.test.cn
$ npm install <git-host>:<git-user>/<repo-name> --registry=http://npm.test.cn
$ npm install <git repo url> --registry=http://npm.test.cn
$ npm install <tarball file> --registry=http://npm.test.cn
$ npm install <tarball url> --registry=http://npm.test.cn
$ npm install <folder> --registry=http://npm.test.cn
$ npm update [-g] [<pkg>...] --registry=http://npm.test.cn
$ npm uninstall [<@scope>/]<pkg>[@<version>]... [-S|--save|-D|--save-dev|-O|--save-optional|--no-save] --registry=http://npm.test.cn
$ npm publish [<tarball>|<folder>] [--tag <tag>] [--otp otpcode] [--dry-run] --registry=http://npm.test.cn
$ npm unpublish [<@scope>/]<pkg>[@<version>] --registry=http://npm.test.cn
$ npm whoami [--registry <registry>] --registry=http://npm.test.cn
$ npm owner add <user> [<@scope>/]<pkg> --registry=http://npm.test.cn
$ npm owner rm <user> [<@scope>/]<pkg> --registry=http://npm.test.cn
$ npm owner ls [<@scope>/]<pkg> --registry=http://npm.test.cn
$ npm deprecate <pkg>[@<version>] <message> --registry=http://npm.test.cn
$ npm view [<@scope>/]<name>[@<version>] --registry=http://npm.test.cn
$ npm dist-tag add <pkg>@<version> [<tag>] --registry=http://npm.test.cn
$ npm dist-tag rm <pkg> <tag> --registry=http://npm.test.cn
$ npm dist-tag ls [<pkg>] --registry=http://npm.test.cn
$ npm access public [<package>] --registry=http://npm.test.cn
$ npm access restricted [<package>] --registry=http://npm.test.cn

Create Your Authorization

你可以建立一个/app/service/authorization.js的文件,按照service模块的写法编写,也可以这样:

clusic add authorization --service

我们来看个例子:

module.exports = class AuthorizationService extends ContextComponent {
  constructor(ctx) {
    super(ctx);
  }

  async Login(account, password) {
    const user = await ajax.post('/employee/check-password', { account, password });
    return {
      account: user.account,
      name: user.name,
      email: user.email,
      avatar: user.avatar,
      scopes: ['@' + account, '@html5', '@node'],
      extra: {}
    }
  }

  async User(account) {
    const user = await ajax.get('/employee/' + account);
    return {
      account: user.account,
      name: user.name,
      email: user.email,
      avatar: user.avatar,
      scopes: ['@' + account, '@html5', '@node'],
      extra: {}
    }
  }
};

两个函数必须返回的参数有:

  • account string 用户账号,唯一性的。
  • name string 用户姓名
  • email string 用户邮箱
  • avatar string 用户头像
  • scopes array 用户私有域数组

至于 extra 是额外参数,可以随意传,作用在web界面上。

License

MIT

Copyright (c) 2018-present, evio shen.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].