2017-02-22 12 views
14

我使用Gem Fury作爲我們的一些私人包裝。我設置了紗線註冊表使用其代理的公共和我們的私人節點模塊:當運行紗線時,使用來自bash的私人令牌生成yarn.lock文件

yarn config set registry "https://npm-proxy.fury.io/$GEMFURY_TOKEN/username" 

GEMFURY_TOKEN設在.bashyarn config get registry生產:

https://npm-proxy.fury.io/$(GEMFURY_TOKEN)/username 

當我們運行yarn,該yarn.lock文件會產生這樣的:

[email protected]: 
    version "0.1.0" 
    resolved "https://npm.fury.io/username/private-module/-/0.1.0.tgz?auth=<GEMFURY TOKEN>" 
    dependencies: 
    ember-cli-babel "^5.1.6" 

[email protected]: 
    version "0.1.4" 
    resolved "https://npm.fury.io/username/private-module-2/-/0.1.4.tgz?auth=<GEMFURY TOKEN>" 
    dependencies: 
    ember-cli-babel "^5.1.6" 
    ember-inflector "^1.9.6" 

我不想在git倉庫專用標記。有沒有一種方法可以將令牌從添加到yarn.lock文件中排除?

+0

我正面臨與MyGet上託管的私人NPM Feed相同的問題。 –

回答

1

在這種情況下,我會建議使用的Gitpre-commit hooks,因爲我懷疑yarn可以節省實包的URL yarn.lock被阻止,即使有在他們的憑據 - 這是yarn的工作方式。 但是,當您提交對Git存儲庫的更改時,預提交掛鉤可以從yarn.lock中刪除這些憑據。

+0

是的,恐怕這可能是目前唯一的實用選擇。我不喜歡它的是它需要開發人員的嚴格紀律(每次創建使用私有包的新回購時都會添加鉤子),而且它的級別較低而且不是通用的:您可能必須自定義根據您的私人註冊表調用特定模式。最後,如果你使用的不是Git以外的東西呢?我會保持現在的賞金,但你可能會贏得它。 –

+0

順便說一句,你有沒有試過像這裏描述的那樣設置'yarn'; https://gemfury.com/help/private-yarn/,它是否仍然在'yarn.lock'中保存憑據呢? – SergeyLebedev

+1

此處還有一個關於您的問題的功能請求:https://github.com/yarnpkg/yarn/issues/5024,但'yarn'維護者拒絕實施它 – SergeyLebedev