Skip to content
/ cnpm.org Public

cnpm.org是阿里前端团队提供搭建企业内部私有源的解决方案,本工程的目的主要是注释相关的代码,方便大家使用和进行定制开发。

License

Notifications You must be signed in to change notification settings

yxUED/cnpm.org

Repository files navigation

cnpmjs.org 注释及优化

项目缘起

感谢原cnpmjs.org的大神们提供的企业内部npm私有源解决方案,为了方便大家投入使用和进行二次开发,特在此对源码进行详细注释;
目前 阿里、腾讯、美团等大都数互联网公司都基于此工程搭建了企业内部私有源或者npm镜像,如淘宝镜像。

项目源码

https://github.com/cnpm/cnpmjs.org/

如何开始

结构目录

.
├── CONTRIBUTING.md             // 如何参与开源项目的开发维护文档
├── Dockerfile                  // dockerfike快速创建自定义的Docker镜像
├── LICENSE.txt                 // 开源协议
├── README.md                   // 项目介绍文档,即本文档
├── bin                    // 可行文件所在目录
│   ├── change_password.js      // 使用本工程默认账户体系 修改用户密码 命令
│   ├── cli.js                  // 客户端命令程序, 一般使用npm安装到全局时会调用
│   └── nodejsctl               // package.json配置的start stop status 等命令
├── common                // 公共中间件目录
│   ├── logger.js               // 日志处理
│   ├── mail.js                 // 邮件配置
│   ├── markdown.js             // 支持 markdown 书写格式
│   ├── nfs.js                  // 文件打包
│   ├── sequelize.js            // 数据处理
│   └── urllib.js               // url处理
├── config               // 配置目录
│   └── index.js                // 配置服务器的端口,数据库等
├── controllers          // 控制器目录
│   ├── registry            // 源的控制器目录
│   ├── sync.js                 // 同步包的控制器
│   ├── sync_module_worker.js   // 同步模块
│   ├── total.js                // 统计包的控制器
│   ├── utils.js                // 工具控制器
│   └── web                 // web端访问的控制器目录
├── dispatch.js                 // 本地开发的启动文件
├── docker-compose.yml          // docker合成配置
├── docs                 //文档目录
│   ├── Migrating-from-1.x-to-2.x.md
│   ├── db.sql
│   ├── dockerize
│   ├── flow
│   ├── network.png
│   ├── network.puml
│   ├── registry-api.md
│   ├── update_sqls
│   └── web
├── index.js                    // npm 引入项目目录时的入口文件
├── lib                  // 库目录
│   └── common.js               // 一些公共函数
├── middleware           // 中间件目录
│   ├── auth.js                 // 账号相关
│   ├── block.js                // 限制 ruby访问
│   ├── editable.js             // 包编辑权限控制
│   ├── exists_package.js       // 检查包是否存在
│   ├── limit.js                // 限流
│   ├── login.js                // 登录处理
│   ├── opensearch.js           // 打开搜索页
│   ├── proxy_to_npm.js         // 代理设置
│   ├── publishable.js          // 发布控制
│   ├── registry_not_found.js   // 处理请求 包 不存在
│   ├── static.js               // 静态资源处理
│   ├── sync_by_install.js      // 安装时 是否同步处理
│   ├── unpublishable.js        // 移除已经发布的包
│   └── web_not_found.js        // 处理请求的网页不存在
├── models               // 数据库目录
│   ├── _module_maintainer_class_methods.js
│   ├── download_total.js       // 获取所有下载量统计
│   ├── index.js
│   ├── init_script.js
│   ├── module.js
│   ├── module_abbreviated.js
│   ├── module_deps.js
│   ├── module_keyword.js
│   ├── module_log.js
│   ├── module_maintainer.js
│   ├── module_star.js
│   ├── module_unpublished.js
│   ├── npm_module_maintainer.js
│   ├── package_readme.js
│   ├── tag.js
│   ├── total.js
│   ├── user.js
│   └── utils.js
├── node_modules                // 第三方应用库 安装目录
├── package-lock.json
├── package.json                // 项目配置、介绍、依赖库和脚本
├── public            // 公共资源目录    
│   ├── css
│   ├── favicon.png
│   └── js
├── routes            // 路由目录
│   ├── registry.js             // 包请求 源路由配置
│   └── web.js                  // web 请求相关配置
├── servers           // 服务器目录
│   ├── registry.js             // 源服务器配置
│   └── web.js                  // web服务器配置
├── services          // 服务目录
│   ├── common.js
│   ├── default_user_service.js
│   ├── download_total.js
│   ├── hook.js
│   ├── module_log.js
│   ├── npm.js
│   ├── package.js
│   ├── total.js
│   └── user.js
├── sync              // 同步相关目录
│   ├── changes_stream_syncer.js
│   ├── index.js
│   ├── status.js
│   ├── sync_all.js
│   ├── sync_exist.js
│   ├── sync_popular.js
│   └── sync_since.js
├── tools             // 工具目录
│   ├── resync_npm_issue_87.js
│   └── sync_download_total.js
├── view              // 页面文件目录
│   └── web                  // web服务器 对应目录
└── worker.js                    // 服务器启动的真正文件

About

cnpm.org是阿里前端团队提供搭建企业内部私有源的解决方案,本工程的目的主要是注释相关的代码,方便大家使用和进行定制开发。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published