2017-03-28 57 views
0

我一直在設置Nexus 3.2,尤其是NPM存儲庫。我有一個代理庫指向registry.npmjs.org我已成功發佈到同一實例上的託管存儲庫,並通過使用npm update -g的實例上的組存儲庫下載工件。通過代理與Nexus 3.2構建的新工程項目

不幸的是,通過組下載有限範圍的項目無法正常工作,這對於進行Angular 2開發至關重要。當我嘗試,我得到404錯誤:

brian$ npm install "@angular/common" 
npm ERR! registry error parsing json 
npm ERR! Unexpected token < in JSON at position 0 
npm ERR! <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> 
npm ERR! <html><head> 
npm ERR! <title>404 Not Found</title> 
npm ERR! </head><body> 
npm ERR! <h1>Not Found</h1> 
npm ERR! <p>The requested URL /nexus/repository/npm_group/@angular/common was not found on this server.</p> 
npm ERR! </body></html> 
npm ERR! 

npm ERR! A complete log of this run can be found in: 
npm ERR!  /Users/brian/.npm/_logs/2017-03-28T07_38_37_824Z-debug.log 

範圍是3.X的高度吹捧的功能,我很高興,他們大多工作。因爲我可以發佈到受保護的回購站,並且代理存儲庫正在填充非範圍的依賴關係,所以我認爲我非常接近。我怎樣才能調試呢?

FWIW,我的Nexus一個Apache httpd服務背後:

ProxyPass /nexus http://dev.example.com:8081/nexus nocanon 
ProxyPassReverse /nexus http://dev.example.com:8081/nexus 
    AllowEncodedSlashes On 
<Location /nexus> 
    RequestHeader set X-Forwarded-Proto "https" 
    RequestHeader set X-Forwarded-Port "443" 
</Location> 

謝謝!

回答

1

解決This SO answer介紹使用AllowEncodedSlashes的細微差別:

錯誤46830:如果AllowEncodedSlashes在在全球範圍內設置,它不是由虛擬主機繼承。您必須在每個容器中明確設置AllowEncodedSlashes On。

正如我有上述結構,在我有它是不正確的範圍添加AllowEncodedSlashes,它需要被放置在VirtualHost範圍爲SSL。在我的情況下,這是NSS模塊(因爲我有證書更新FreeIPA)。

一旦改變了,一切都很好。

相關問題