Git Product home page Git Product logo

cnpmcore's Introduction

Private NPM Registry for Enterprise

Node.js CI codecov CodeQL FOSSA Status

Reimplementation based on cnpmjs.org with TypeScript.

Registry HTTP API

See registry-api.md

How to contribute

See DEVELOPER.md

How to integrate

See INTEGRATE.md

License

MIT

Contributors


fengmk2


semantic-release-bot


elrrrrrrr


killagu


hezhengxu2018


Beace


gemwuu


Zian502


laibao101


coolyuantao


Wellaiyo


atian25


hljwkwm


BlackHole1


xiekw2010


Zheaoli


OpportunityLiu


thonatos


chilingling


chenpx976


fossabot


looksgood


laoboxie


unbyte


wandergis


windhc


yisibl


vimplus


feichao93

This project follows the git-contributor spec, auto updated at Fri May 17 2024 22:31:22 GMT+0800.

FOSSA Status

cnpmcore's People

Contributors

atian25 avatar beace avatar blackhole1 avatar chenpx976 avatar chilingling avatar coolyuantao avatar elrrrrrrr avatar feichao93 avatar fengmk2 avatar fossabot avatar gemwuu avatar hezhengxu2018 avatar hljwkwm avatar killagu avatar laibao101 avatar laoboxie avatar looksgood avatar opportunityliu avatar semantic-release-bot avatar thonatos avatar unbyte avatar vimplus avatar wandergis avatar wellaiyo avatar windhc avatar xiekw2010 avatar yisibl avatar zheaoli avatar zian502 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cnpmcore's Issues

Support changes_stream on cnpmcore

https://github.com/npm/registry-follower-tutorial

{ seq: 445,
  id: 'CompoundSignal',
  changes: [ { rev: '5-a0695c30fdaa3471246ef0cd6c8a476d' } ] }
{ seq: 446,
  id: 'amphibian',
  changes: [ { rev: '5-1a864e76d844e90bf6c63cb94303b593' } ] }
{ seq: 447,
  id: 'aop',
  changes: [ { rev: '9-9acc0139df57a1db2604f13f12b500f2' } ] }
{ seq: 448,
  id: 'dynamo-schema',
  changes: [ { rev: '5-bf8052c0d4b6e80e6664625137efd610' } ] }
{ seq: 451,
  id: 'password-reset',
  changes: [ { rev: '21-948e6633799ffd56a993c3fb144d1728' } ] }

tgz 在 registry.npmjs.org 同步可能会出现文件延迟,需要到 replicate.npmjs.com 重试一次

2022-02-24 22:50:53,094 ERROR 1770189 [-/127.0.0.1/28db8e41-9581-11ec-8424-872938e39e41/2049.339ms SCHEDULE /__schedule?path=/home/admin/application/app/schedule/SyncPackageWorker.js&interval=1000&type=all] Download tarball https://registry.npmjs.org/ilab-lib/-/ilab-lib-0.0.21.tgz error: Error [DownloadNotFoundError]: Not found, status(404)

https://registry.npmjs.org/ilab-lib/-/ilab-lib-0.0.21.tgz 404 的时候通过 https://replicate.npmjs.com/ilab-lib/-/ilab-lib-0.0.21.tgz 重试一次

tag 同步了,但是 version 不在

curl -L https://r.cnpmjs.org/-/package/@opensumi/ide-status-bar/syncs/61f1049d8f235b9e69a1a3ee/log

[2022-01-26T08:25:13.091Z] 👉👉👉👉👉 Tips: Sync cause by "http://r.cnpmjs.org/@opensumi/ide-status-bar/sync?sync_upstream=true", parent traceId: 7b5f0af0-7e81-11ec-b480-6dd2e0c7633c 👈👈👈👈👈
[2022-01-26T08:25:13.091Z] 🚧🚧🚧🚧🚧 Start sync "@opensumi/ide-status-bar" from https://registry.npmjs.org, skipDependencies: false 🚧🚧🚧🚧🚧
[2022-01-26T08:25:13.387Z] HTTP [200] content-length: 124558, timing: {"queuing":1,"dnslookup":0,"connected":0,"requestSent":1,"waiting":290,"contentDownload":296}
[2022-01-26T08:25:13.387Z] 🚧 Syncing maintainers: [{"name":"hacke2","email":"[email protected]"},{"name":"jinboker","email":"[email protected]"},{"name":"ensorrow","email":"[email protected]"},{"name":"sakuraash","email":"[email protected]"},{"name":"erha19","email":"[email protected]"},{"name":"lengthmin","email":"[email protected]"}]
[2022-01-26T08:25:13.422Z] 🚧 Syncing versions 46 => 46
[2022-01-26T08:25:13.434Z] 🟢 log: https://r.cnpmjs.org/-/package/@opensumi/ide-status-bar/syncs/61f10568a8f92fecd3b7ef68/log
[2022-01-26T08:25:13.434Z] 🟢🟢🟢🟢🟢 https://registry.npmjs.org/%40opensumi%2Fide-status-bar 🟢🟢🟢🟢🟢

image

支持完全不同步的私有模式

非私有模块完全使用上游 registry 的数据,需要做 302 跳转转发逻辑。

sync: all

同步所有三方包,不存在先 proxy 然后异步创建一个同步任务

sync: none

不同步任何三方包,完全 proxy

npm cli commands check list

Done

Todo

GET https://registry.npmjs.org/-/npm/v1/user
npm profile get --json
{
  "tfa": {
    "pending": false,
    "mode": "auth-only"
  },
  "name": "foo",
  "email": "[email protected]",
  "email_verified": true,
  "created": "2015-02-26T01:40:54.959Z",
  "updated": "2021-12-04T17:21:28.461Z",
  "fullname": "foo",
  "twitter": "foo",
  "github": "foo"
}
GET https://registry.npmjs.org/-/v1/search?text=egg2&size=20&from=0&quality=0.65&popularity=0.98&maintenance=0.5
'npm-command': [ 'search' ],
authorization: [ 'Bearer npm_token' ]

npm search egg --json
[

{"name":"egg","scope":"unscoped","version":"2.33.1","description":"A web framework's framework for Node.js","keywords":["web","app","http","application","framework","middleware","koa","egg"],"date":"2021-12-06T16:26:46.792Z","links":{"npm":"https://www.npmjs.com/package/egg","homepage":"https://github.com/eggjs/egg","repository":"https://github.com/eggjs/egg","bugs":"https://github.com/eggjs/egg/issues"},"publisher":{"username":"fengmk2","email":"[email protected]"},"maintainers":[{"username":"eggjs-admin","email":"[email protected]"},{"username":"fengmk2","email":"[email protected]"},{"username":"atian25","email":"[email protected]"},{"username":"dead_horse","email":"[email protected]"},{"username":"popomore","email":"[email protected]"},{"username":"wanghx","email":"[email protected]"},{"username":"hyj1991","email":"[email protected]"},{"username":"thonatos","email":"[email protected]"},{"username":"killagu","email":"[email protected]"},{"username":"coolme200","email":"[email protected]"},{"username":"xadillax","email":"[email protected]"},{"username":"ngot","email":"[email protected]"},{"username":"mansonchor.zzw","email":"[email protected]"},{"username":"hubcarl","email":"[email protected]"},{"username":"shaoshuai0102","email":"[email protected]"}]}

,

{"name":"egg-mock","scope":"unscoped","version":"4.2.0","description":"mock server for egg","keywords":["egg","mock"],"date":"2021-12-17T10:44:58.662Z","links":{"npm":"https://www.npmjs.com/package/egg-mock","homepage":"https://github.com/eggjs/egg-mock","repository":"https://github.com/eggjs/egg-mock","bugs":"https://github.com/eggjs/egg/issues"},"author":{"name":"popomore","email":"[email protected]","username":"popomore"},"publisher":{"username":"fengmk2","email":"[email protected]"},"maintainers":[{"username":"eggjs-admin","email":"[email protected]"},{"username":"fengmk2","email":"[email protected]"},{"username":"atian25","email":"[email protected]"},{"username":"dead_horse","email":"[email protected]"},{"username":"popomore","email":"[email protected]"},{"username":"wanghx","email":"[email protected]"},{"username":"hyj1991","email":"[email protected]"},{"username":"thonatos","email":"[email protected]"},{"username":"killagu","email":"[email protected]"},{"username":"coolme200","email":"[email protected]"},{"username":"xadillax","email":"[email protected]"},{"username":"ngot","email":"[email protected]"},{"username":"mansonchor.zzw","email":"[email protected]"},{"username":"hubcarl","email":"[email protected]"},{"username":"shaoshuai0102","email":"[email protected]"}]}
GET http://localhost:7001/-/_view/starredByUser?key=%22cnpmcore_admin%22

Error: ER_DATA_TOO_LONG: Data too long for column 'name' at row 1

2021-12-14 22:50:16,434 ERROR 92622 [Job#163949322173616956023029765728591] /home/admin/application/app/schedule/SyncPackageWorker.js execute failed, used 194696ms. Error: ER_DATA_TOO_LONG: Data too long for column 'name' at row 1
    at Query.Sequence._packetToError (/home/admin/application/node_modules/[email protected]@mysql/lib/protocol/sequences/Sequence.js:47:14)
    at Query.ErrorPacket (/home/admin/application/node_modules/[email protected]@mysql/lib/protocol/sequences/Query.js:79:18)
    at Protocol._parsePacket (/home/admin/application/node_modules/[email protected]@mysql/lib/protocol/Protocol.js:291:23)
    at Parser._parsePacket (/home/admin/application/node_modules/[email protected]@mysql/lib/protocol/Parser.js:433:10)
    at Parser.write (/home/admin/application/node_modules/[email protected]@mysql/lib/protocol/Parser.js:43:10)
    at Protocol.write (/home/admin/application/node_modules/[email protected]@mysql/lib/protocol/Protocol.js:38:16)
    at Socket.<anonymous> (/home/admin/application/node_modules/[email protected]@mysql/lib/Connection.js:88:28)
    at Socket.<anonymous> (/home/admin/application/node_modules/[email protected]@mysql/lib/Connection.js:526:10)
    at Socket.emit (node:events:390:28)
    at addChunk (node:internal/streams/readable:315:12)
    --------------------
    at Protocol._enqueue (/home/admin/application/node_modules/[email protected]@mysql/lib/protocol/Protocol.js:144:48)
    at PoolConnection.query (/home/admin/application/node_modules/[email protected]@mysql/lib/Connection.js:198:25)
    at /home/admin/application/node_modules/[email protected]@leoric/src/drivers/mysql/index.js:81:18
    at new Promise (<anonymous>)
    at MysqlDriver.query (/home/admin/application/node_modules/[email protected]@leoric/src/drivers/mysql/index.js:80:21)
    at Spell.ignite (/home/admin/application/node_modules/[email protected]@leoric/src/spell.js:434:37)
    at Spell.then (/home/admin/application/node_modules/[email protected]@leoric/src/spell.js:451:17)
    at runMicrotasks (<anonymous>)
    at processTicksAndRejections (node:internal/process/task_queues:96:5) {
  code: 'ER_DATA_TOO_LONG',
  errno: 1406,
  sqlMessage: "Data too long for column 'name' at row 1",
  sqlState: '22001',
  index: 0,
  sql: "INSERT INTO `dists` (`gmt_create`, `gmt_modified`, `dist_id`, `name`, `path`, `size`, `shasum`, `integrity`) VALUES ('2021-12-14 22:50:16.377', '2021-12-14 22:50:16.377', '61b8af28489aa269cfabad58', 'solid-client-0.0.2-dependabotnpmandyarnwebsitedocusauruspreset-classic-200-alpha61-192892303-618.0.tgz', '/packages/@inrupt/solid-client/0.0.2-dependabotnpmandyarnwebsitedocusauruspreset-classic-200-alpha61-192892303-618.0/solid-client-0.0.2-dependabotnpmandyarnwebsitedocusauruspreset-classic-200-alpha61-192892303-618.0.tgz', 298974, '716ede0ed0df5d248fff22f8ff598e7fd49a75ce', 'sha512-pkAx/F0mtrSyfNTNgLKSgUN3hchxZi5Iz0RD8Wec6sNgwydC6YI3nXFWcYRB9hdPP5jhmiaBtEVc3DkYYtNEZQ==')"
INSERT INTO `dists` (`gmt_create`, `gmt_modified`, `dist_id`, `name`, `path`, `size`, `shasum`, `integrity`) 
VALUES ('2021-12-14 22:50:16.377', '2021-12-14 22:50:16.377', '61b8af28489aa269cfabad58', 'solid-client-0.0.2-dependabotnpmandyarnwebsitedocusauruspreset-classic-200-alpha61-192892303-618.0.tgz', 
'/packages/@inrupt/solid-client/0.0.2-dependabotnpmandyarnwebsitedocusauruspreset-classic-200-alpha61-192892303-618.0/solid-client-0.0.2-dependabotnpmandyarnwebsitedocusauruspreset-classic-200-alpha61-192892303-618.0.tgz', 
298974, 
'716ede0ed0df5d248fff22f8ff598e7fd49a75ce', 'sha512-pkAx/F0mtrSyfNTNgLKSgUN3hchxZi5Iz0RD8Wec6sNgwydC6YI3nXFWcYRB9hdPP5jhmiaBtEVc3DkYYtNEZQ==')

同步原来的 downloads 数据

主要是避免单个包的历史下载数据丢失问题,全站数据我们已经有统计过。

核心逻辑

设定某一天是重合期,这一天的下载量相加,这一天的下载量是覆盖。这一天之后的数据忽略。

选择一个周日(反正从0点开始丢弃的数据也能被接受)开始跑,那么这一天的数据允许丢弃老 registry 的数据,因为可能会重跑多次,这样避免数据做相加导致额外增多了,宁可丢掉重合那天的数据,也不要制造多出来的下载量。

Todos

  • r.cnpmjs.org datas 选择 2021-12-28
  • registry.npmmirror.com datas 选择 2022-01-29

支持 range 接口查询版本

  • 对外需要跟 npm registry 沟通,看看是否可以提供新的接口,走分页。
  • 对内,查询 db 走分页

image

Todos

  • 支持 semver range 查询

npm8 缺少 hasInstallScript 参数导致安装失败

原 issue:cnpm/cnpmjs.org#1667
请问这个问题在 cnpmcore 上有修复吗?
在 npm7 / 8 上都出现了跑 node-gyp 而不是 node-pre-gyp 的情况,我 curl 了一下发现也是缺少 hasInstallScript 的字段导致的。

排查过程

返回只节选最新版本的描述

registry.npmjs.org

hasInstallScript
curl -v https://registry.npmjs.org/xprofiler -H 'accept: application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, /' | jq | less

{
  "1.4.0": {
        "name": "xprofiler",
        "version": "1.4.0",
        "dependencies": {
          "@xprofiler/node-pre-gyp": "^1.0.9",
          "moment": "^2.29.1",
          "nan": "^2.15.0",
          "uuid": "^8.3.2",
          "yargs": "^15.4.1"
        },
        "devDependencies": {
          "@istanbuljs/schema": "^0.1.3",
          "autod": "^3.1.2",
          "clang-format": "^1.6.0",
          "codecov": "^3.8.3",
          "eslint": "^6.8.0",
          "expect.js": "^0.3.1",
          "formstream": "^1.1.1",
          "mm": "^3.2.0",
          "mocha": "^7.2.0",
          "nyc": "^15.1.0",
          "tunnel-agent": "^0.6.0",
          "urllib": "^2.38.0"
        },
        "bin": {
          "xprofctl": "bin/xprofctl"
        },
        "dist": {
          "integrity": "sha512-ZXRrsC9S602oEH6lGe0ulLSK0iZaz9aO3apxNNFtsbhrHjvifnEfUvukngTZnCDJqfcdT0RNi4x0O3x3IRtlBg==",
          "shasum": "967b4b25922fb710edfe1070e7d3aae092d1ee63",
          "tarball": "https://registry.npmjs.org/xprofiler/-/xprofiler-1.4.0.tgz",
          "fileCount": 101,
          "unpackedSize": 1185694,
          "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiNff5ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrpsg/
  /WxW3nU3hMOzT2oaVWgrKrOO0JUOb3p88f827kU0d8jeQx9jL\r\nzdMI2oU4HPvGjnc1RxJ4EcoXsgSGAXfhCrRj6XiVVvzsjDniXFlAucQWouQV\r\nQVaOQj1Oq0DentvueYyuLWgrwVDexQHMbS6cFDmULd+zDedfBHRWXLSBr/9h\r\nvihImWDvsjB2QD1xt4rn22gW5DX/1PdCUsr7YfAQAE8ZxY6vucFXjWZCtZe8\r\ndBFN74W0jUdO4QoI9lY3FiNDC9SV5EWd/TG3fl4ZC/yy8tXCpNg/JM5RurjC\r\nv5J//cSxKZxbUGsZX5M5nOIsGdDt5VyjaDQoIkPeM09Apj1/Sp9Y5TjEBalE\r\nrAi1C09o7YxLUTNelI4yjsKw784w21culEPgqL+o/MEetSe5sfc/32K6zyNy\r\nCL/BYq0kNMSzDNnqOHTka2PG/sSQPszt2B8GuXEsEb0jRzcS1K3D3JV5b0b3\r\nLqMFI/1VceD09TfJMPEDJrb+xbaw9PwGB4mFCU8vH4LA5utyDYpOPNzos4cv\r\ngenIVW6qVCQqSEHZKrC3k5yTLxxRp318CgG4/dX2CG1e1h79g2WqwuGnACIm\r\n6tQufKZVdqokSyilx3dy75FpztwiAf+CdyT5OCDuOJUenJD81hNR8mKvMuQm\r\nvTLvvU/xZhdiaN6aX5QMUD4oEjP9swpAuAE=\r\n=lema\r\n-----END PGP SIGNATURE-----\r\n"
        },
        "hasInstallScript": true
      }
    }
}

registry.npmmirror.com

hasInstallScript
curl -v https://registry.npmmirror.com/xprofiler -H 'accept: application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, /' | jq | less

{
  "1.4.0": {
        "name": "xprofiler",
        "version": "1.4.0",
        "dependencies": {
          "@xprofiler/node-pre-gyp": "^1.0.9",
          "moment": "^2.29.1",
          "nan": "^2.15.0",
          "uuid": "^8.3.2",
          "yargs": "^15.4.1"
        },
        "devDependencies": {
          "@istanbuljs/schema": "^0.1.3",
          "autod": "^3.1.2",
          "clang-format": "^1.6.0",
          "codecov": "^3.8.3",
          "eslint": "^6.8.0",
          "expect.js": "^0.3.1",
          "formstream": "^1.1.1",
          "mm": "^3.2.0",
          "mocha": "^7.2.0",
          "nyc": "^15.1.0",
          "tunnel-agent": "^0.6.0",
          "urllib": "^2.38.0"
        },
        "bin": {
          "xprofctl": "bin/xprofctl"
        },
        "directories": {},
        "dist": {
          "integrity": "sha512-ZXRrsC9S602oEH6lGe0ulLSK0iZaz9aO3apxNNFtsbhrHjvifnEfUvukngTZnCDJqfcdT0RNi4x0O3x3IRtlBg==",
          "shasum": "967b4b25922fb710edfe1070e7d3aae092d1ee63",
          "tarball": "https://registry.npmmirror.com/xprofiler/-/xprofiler-1.4.0.tgz",
          "fileCount": 101,
          "unpackedSize": 1185694,
          "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiNff5ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrpsg//WxW3nU3hMOzT2oaVWgrKrOO0JUOb3p88f827kU0d8jeQx9jL\r\nzdMI2oU4HPvGjnc1RxJ4EcoXsgSGAXfhCrRj6XiVVvzsjDniXFlAucQWouQV\r\nQVaOQj1Oq0DentvueYyuLWgrwVDexQHMbS6cFDmULd+zDedfBHRWXLSBr/9h\r\nvihImWDvsjB2QD1xt4rn22gW5DX/1PdCUsr7YfAQAE8ZxY6vucFXjWZCtZe8\r\ndBFN74W0jUdO4QoI9lY3FiNDC9SV5EWd/TG3fl4ZC/yy8tXCpNg/JM5RurjC\r\nv5J//cSxKZxbUGsZX5M5nOIsGdDt5VyjaDQoIkPeM09Apj1/Sp9Y5TjEBalE\r\nrAi1C09o7YxLUTNelI4yjsKw784w21culEPgqL+o/MEetSe5sfc/32K6zyNy\r\nCL/BYq0kNMSzDNnqOHTka2PG/sSQPszt2B8GuXEsEb0jRzcS1K3D3JV5b0b3\r\nLqMFI/1VceD09TfJMPEDJrb+xbaw9PwGB4mFCU8vH4LA5utyDYpOPNzos4cv\r\ngenIVW6qVCQqSEHZKrC3k5yTLxxRp318CgG4/dX2CG1e1h79g2WqwuGnACIm\r\n6tQufKZVdqokSyilx3dy75FpztwiAf+CdyT5OCDuOJUenJD81hNR8mKvMuQm\r\nvTLvvU/xZhdiaN6aX5QMUD4oEjP9swpAuAE=\r\n=lema\r\n-----END PGP SIGNATURE-----\r\n",
          "size": 209954
        },
        "_hasShrinkwrap": false
      }
    }
}

在新的 web 做出来之前怎么办?

在 cnpmjs.org 增加一个远程数据的能力,web 还是走原来的方式显示,然后数据源来自新的 registry。

等新版的 web 做好再切换过去。

争取春节期间数据流量比较少,这个时候完成切换。

TODOs

  • cnpmjs.org 页面展示数据来源 r.cnpmjs.org
  • npmmirror.com 页面展示来自 registry.npmmirror.com
  • 上面完成之后将 cnpmjs.org 页面强制跳转到 npmmirror.com 页面
  location / {
   #     include /etc/nginx/proxy_params;
   #     proxy_pass http://127.0.0.1:7002;
   #     proxy_redirect off;
       return 302 https://npmmirror.com$request_uri;
   }

no maintainers data on sync package

curl -L https://r.cnpmjs.org/-/package/postman-jsdoc-theme/syncs/61f406302d73dab1352cf63b/log
[2022-01-28T15:05:20.208Z] 👉👉👉👉👉 Tips: Sync cause by "http://r.cnpmjs.org/postman-jsdoc-theme/sync?sync_upstream=true", parent traceId: b5b34510-804b-11ec-9ac5-e1526389ecca 👈👈👈👈👈
[2022-01-28T15:05:20.208Z] 🚧🚧🚧🚧🚧 Start sync "postman-jsdoc-theme" from https://registry.npmjs.org, skipDependencies: false, syncDownloadData: false, attempts: 1 🚧🚧🚧🚧🚧
[2022-01-28T15:05:21.063Z] HTTP [200] content-length: undefined, timing: {"queuing":1,"dnslookup":1,"connected":4,"requestSent":9,"waiting":854,"contentDownload":854}
[2022-01-28T15:05:21.063Z] ❌ invalid maintainers: [], log: https://r.cnpmjs.org/-/package/postman-jsdoc-theme/syncs/61f406302d73dab1352cf63b/log
[2022-01-28T15:05:21.063Z] ❌❌❌❌❌ https://registry.npmjs.org/postman-jsdoc-theme?t=1643382320209 ❌❌❌❌❌

并行同步冲突

2021-12-18 14:24:59,667 INFO 132658 [-/127.0.0.1/0a00003916398086996626952132658/6.815ms SCHEDULE /__schedule?path=/home/admin/application/app/schedule/SyncPackageWorker.js&interval=1000&type=all] [SyncPackageWorker:subscribe:executeTask:start][2] taskId: 61bd7ebbe9de14062b37d90f, targetName: vue-manage-system-dev, attempts: 1, params: {"tips":""}, updatedAt: 2021-12-18T06:24:59.663Z, delay -1ms
2021-12-18 14:25:19,148 INFO 132658 [-/127.0.0.1/0a00003916398086996626952132658/19488.093ms SCHEDULE /__schedule?path=/home/admin/application/app/schedule/SyncPackageWorker.js&interval=1000&type=all] [SyncPackageWorker:subscribe:executeTask:success][3] taskId: 61bd7ebbe9de14062b37d90f, targetName: vue-manage-system-dev, use 19486ms

2021-12-18 14:25:04,027 INFO 46000 [-/127.0.0.1/0a00003a1639808704020682246000/8.322ms SCHEDULE /__schedule?path=/home/admin/application/app/schedule/SyncPackageWorker.js&interval=1000&type=all] [SyncPackageWorker:subscribe:executeTask:start][2] taskId: 61bd7ebfc387e40632a4e85f, targetName: vue-manage-system-dev, attempts: 1, params: {"tips":""}, updatedAt: 2021-12-18T06:25:04.022Z, delay -2ms
2021-12-18 14:25:18,515 ERROR 46000 [-/127.0.0.1/0a00003a1639808704020682246000/14496.475ms SCHEDULE /__schedule?path=/home/admin/application/app/schedule/SyncPackageWorker.js&interval=1000&type=all] [SyncPackageWorker:subscribe:executeTask:error][1] taskId: 61bd7ebfc387e40632a4e85f, targetName: vue-manage-system-dev, Error: ER_DUP_ENTRY: Duplicate entry '/packages/vue-manage-system-dev/full_manifests.json' for key 'uk_path'

Too big tgz to sync

-rw-r--r-- 1 root root  49M Dec 16 09:01 8618e5173a6031d89b2c-cardpay-cli-0.27.41.tgz
-rw-r--r-- 1 root root  49M Dec 16 09:05 91b7e1bf6299494070db-unity-renderer-1.0.15625-20211006150505.commit-3e01b3d.tgz
-rw-r--r-- 1 root root  49M Dec 16 05:01 c1a5c0e2547775151538-unity-renderer-1.0.16400-20211013180645.commit-9136b46.tgz
-rw-r--r-- 1 root root  49M Dec 16 07:52 d86f536f25dc7198cd97-unity-renderer-1.0.18125-20211029133405.commit-3d07ee8.tgz
-rw-r--r-- 1 root root  49M Dec 16 08:07 27d666df1e54dd24e0db-node-cputil-0.2.2.tgz
-rw-r--r-- 1 root root  49M Dec 16 08:06 75f68545bfa79b7d00d4-nswag-13.10.2.tgz
-rw-r--r-- 1 root root  49M Dec 16 02:35 1e9d0330a7d96a62c403-kuzzle-1.0.0.tgz
-rw-r--r-- 1 root root  49M Dec 16 08:03 1a9670e413cb8a4c1fe9-node-cputil-0.0.4.tgz
-rw-r--r-- 1 root root  49M Dec 16 03:38 a0ee7d31ebae4b36d043-unity-renderer-1.0.18243-20211101152936.commit-7ec6c91.tgz
-rw-r--r-- 1 root root  50M Dec 16 08:25 1489aa32d4deeae59cb8-node-cputil-0.0.6.tgz
-rw-r--r-- 1 root root  50M Dec 16 07:54 82e5fb73f8ccd7baac70-aumueller-server-1.0.1-b5.tgz
-rw-r--r-- 1 root root  50M Dec 16 09:03 c47a63765a67c6c4fc16-monofo-2.1.1.tgz
-rw-r--r-- 1 root root  50M Dec 16 08:15 46fabd85cb7197241ef8-node-cputil-0.0.11.tgz
-rw-r--r-- 1 root root  50M Dec 16 07:36 0ac8ef52610070d413a1-potree-zen-1.8.1.tgz
-rw-r--r-- 1 root root  50M Dec 16 09:07 945169999a39a825e012-cardpay-cli-0.27.41.tgz
-rw-r--r-- 1 root root  50M Dec 16 08:19 b3be4b9e690a6f287f7f-node-cputil-0.0.9.tgz
-rw-r--r-- 1 root root  51M Dec 16 08:57 e362dc329bd7da2864c9-node-cputil-0.0.9.tgz
-rw-r--r-- 1 root root  51M Dec 16 08:52 172ffdf475158abc4985-nswag-13.2.0.tgz
-rw-r--r-- 1 root root  52M Dec 16 08:18 06205ceee18355409e96-node-cputil-0.0.5.tgz
-rw-r--r-- 1 root root  52M Dec 16 08:55 0f974cc056f13146a248-react-native-camera-kit-6.2.5.tgz
-rw-r--r-- 1 root root  53M Dec 16 08:13 c0973d1207ea01f16380-node-cputil-0.0.12.tgz
-rw-r--r-- 1 root root  53M Dec 16 08:12 76de61f7f07a5e3581df-node-cputil-0.0.8.tgz
-rw-r--r-- 1 root root  53M Dec 16 07:05 aa424cde4619f098f3c0-react-devtools-inline-4.17.0.tgz
-rw-r--r-- 1 root root  54M Dec 16 08:25 ef8eedd21f8c7339e8f2-node-cputil-0.0.1.tgz
-rw-r--r-- 1 root root  54M Dec 16 08:14 a8123d0f1f2371e4d2d2-node-cputil-0.0.7.tgz
-rw-r--r-- 1 root root  54M Dec 16 07:28 dea8abdfbe341d1545b7-cardpay-cli-0.27.41.tgz
-rw-r--r-- 1 root root  54M Dec 16 07:32 fe7785f5e96682a45d45-potree-zen-1.8.4.tgz
-rw-r--r-- 1 root root  54M Dec 16 08:17 2a90d1fa999823a1152d-node-cputil-0.0.10.tgz
-rw-r--r-- 1 root root  54M Dec 16 07:30 f2cab71406c17fc96577-potree-zen-1.8.5.tgz
-rw-r--r-- 1 root root  54M Dec 16 08:53 ee37aa88d4074625e52f-node-cputil-0.0.11.tgz
-rw-r--r-- 1 root root  55M Dec 16 08:59 0d7943ab798d23497547-node-cputil-0.0.6.tgz
-rw-r--r-- 1 root root  56M Dec 16 01:25 dd3adae3b6c4dcb71ebc-selenium-standalone-4.6.0.tgz
-rw-r--r-- 1 root root  56M Dec 16 07:36 cffd7a80c0414ded9ca7-aumueller-server-1.0.1-b15.tgz
-rw-r--r-- 1 root root  56M Dec 16 08:11 5a582201d9c4b7a4b495-node-cputil-0.2.0.tgz
-rw-r--r-- 1 root root  60M Dec 16 01:25 b474b932985368b34e3b-phantomjs-bin-2.1.1.tgz

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.