我們正在運行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