2016-07-15 88 views
1

我們有一個作用域模塊,並且npm要能夠解決它,我們必須說明它的回購是在哪裏。這可以在IE .npmrc來完成,如:將作用域npm註冊表URL定義爲環境變量

@my-scope:registry=http://my-sweet-replication.example.com/npm/ 

我的問題是,由於GET請求一些代理和認證的,我必須把不同的值.npmrc發展與構建服務器(特拉維斯企業) 。我們已經利用npm可以讀取未作用域的包的環境變量這一事實,但是因爲@:在環境變量中都是無效字符,所以我無法導出正確的URL。

任何想法如何告訴npm在哪裏尋找範圍內的模塊,而不把它放在.npmrc

回答

1

現在,我的解決辦法是使用env命令,即(在.travis.yml

install: env '[email protected]:REGISTRY=http://my-sweet-replication.example.com/npm/' npm install 

這是唯一的辦法做到這一點?

將它放到特拉維斯env基質不能正常工作,因爲它使用EXPORT,所以它試圖只導出REGISTRY

(張貼我的答案,因爲我沒有從谷歌上搜索得到任何點擊)

0

手動創建用戶,方法是使用適當的令牌安裝~/.npmrc

首先,進入你的項目的環境,並設置一些名稱的令牌。在這個例子中,我使用NPM_TOKEN,但這並不重要。有些unice會使用小寫envvars,所以使用allcaps。

下一頁添加以下到您.travis.yml

before_install: 
    - echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" > ~/.npmrc 

現在你應該有適當憑據的NPM用戶。