我们正在运行Artifactory 4.7.7 rev 40199,其目标是使项目的所有NPM流量都通过Artifactory。我们在和Github的External Dependency Rewrites的组合方面遇到了问题。用于NPM的Artifactory Dependency Rewrite在与npm-shrinkwrap一起使用时失败
我们的设置目前看起来是这样的
- NPM-虚拟(虚拟即NPM是指向与.npmrc文件的项目回购协议。点顺序下面的资料库。有外部依赖重写集弥补Github上)
- NPM-本地(本地回购为我们自己的包)
- 注册表npmjs,组织(缓存包从官方NPM注册表
- NPM-github上重写(用于缓存远程回购改写Github上库)远程回购
我们所看到的问题是由以下可复制
npm install
与Github上依赖([email protected]
)- Artifactory的重写的封装第二缓存Github的依赖(
taffydb
&esprima
) npm shrinkwrap
来锁定版本- 删除
node_modules
- 运行
npm install
与节点设置为不使用我们的代理,第二npm install
失败的以下信息
npm ERR! fetch failed https://github.com/hegemonic/taffydb/tarball/7d100bcee0e997ee4977e273cdce60bd8933050e
npm WARN retry will retry, error on last attempt: Error: connect ECONNREFUSED 192.30.253.112:443
npm ERR! fetch failed https://github.com/ariya/esprima/tarball/49a2eccb243f29bd653b11e9419241a9d726af7c
npm WARN retry will retry, error on last attempt: Error: connect ECONNREFUSED 192.30.253.112:443
npm ERR! fetch failed https://github.com/ariya/esprima/tarball/49a2eccb243f29bd653b11e9419241a9d726af7c
npm WARN retry will retry, error on last attempt: Error: connect ECONNREFUSED 192.30.253.113:443
npm ERR! fetch failed https://github.com/hegemonic/taffydb/tarball/7d100bcee0e997ee4977e273cdce60bd8933050e
npm WARN retry will retry, error on last attempt: Error: connect ECONNREFUSED 192.30.253.113:443
npm ERR! fetch failed https://github.com/ariya/esprima/tarball/49a2eccb243f29bd653b11e9419241a9d726af7c
npm ERR! fetch failed https://github.com/hegemonic/taffydb/tarball/7d100bcee0e997ee4977e273cdce60bd8933050e
npm WARN optional Skipping failed optional dependency /jsdoc/taffydb:
npm WARN Error: connect ECONNREFUSED 192.30.253.113:443
npm WARN at Object.exports._errnoException (util.js:1012:11)
npm WARN at exports._exceptionWithHostPort (util.js:1035:20)
npm WARN at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1080:14)
npm WARN { Error: connect ECONNREFUSED 192.30.253.113:443
npm WARN at Object.exports._errnoException (util.js:1012:11)
npm WARN at exports._exceptionWithHostPort (util.js:1035:20)
npm WARN at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1080:14)
npm WARN code: 'ECONNREFUSED',
npm WARN errno: 'ECONNREFUSED',
npm WARN syscall: 'connect',
npm WARN address: '192.30.253.113',
npm WARN port: 443,
npm WARN parent: 'jsdoc',
npm WARN optional: '/jsdoc/taffydb' }
npm ERR! Windows_NT 10.0.10586
npm ERR! argv "D:\\Languages\\NodeJS\\node.exe" "D:\\Languages\\NodeJS\\node_modules\\npm\\bin\\npm-cli.js" "install"
npm ERR! node v6.3.1
npm ERR! npm v3.10.3
npm ERR! code ECONNREFUSED
npm ERR! errno ECONNREFUSED
npm ERR! syscall connect
npm ERR! Error: connect ECONNREFUSED 192.30.253.113:443
npm ERR! at Object.exports._errnoException (util.js:1012:11)
npm ERR! at exports._exceptionWithHostPort (util.js:1035:20)
npm ERR! at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1080:14)
npm ERR! { Error: connect ECONNREFUSED 192.30.253.113:443
npm ERR! at Object.exports._errnoException (util.js:1012:11)
npm ERR! at exports._exceptionWithHostPort (util.js:1035:20)
npm ERR! at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1080:14)
npm ERR! code: 'ECONNREFUSED',
npm ERR! errno: 'ECONNREFUSED',
npm ERR! syscall: 'connect',
npm ERR! address: '192.30.253.113',
npm ERR! port: 443,
npm ERR! parent: 'jsdoc' }
npm ERR!
npm ERR! If you are behind a proxy, please make sure that the
npm ERR! 'proxy' config is set properly. See: 'npm help config'
由于某些原因,shrinkwrap的存在似乎完全忽略了依赖关系重写规则,只是试图去Github。
我们错过了什么吗?我们缺少一些设置步骤吗?
其他细节基于@乌-1后
- 的
npm-shrinkwrap.json
只包含引用artifactory的网址。该文件中没有GitHub引用。 - 包的本地缓存版本有它的
_resolved
,_from
和它tarball
性质的package.json
(被储存在该TGZ)设置为artifactory的网址/版本 - 本地缓存版本确实有Github上的参考,在它的
repository.url
物业 - 包的安装(
{INSTALL_DIR}/node_modules/taffydb/package.json
)的版本有它在它_resolved
,_from
和tarball
性质是package.json
设置为artifactory的网址/ versions` - 原包的artifactory的缓存版本(
[email protected]
)似乎有它在TGZ不变 - 的Artifactory的NPM信息标签的原包装是否有一个GitHub的URL,而不是其他的包(
taffydb
)版本号 - 是有pacakges的版本
package.json
被重写(taffydb
)都出现在右回购(npm-github-rewrite
),他们的解压package.json
似乎是不变
感谢您的详细回复。我在原始问题的底部添加了一些额外的评论。 – XenoByteZero