npm 安裝私有 git 包

npm 安裝私有 git 包

npm 對於前端開發來講是一種必備的工具,對於開源項目來講,徹底沒有任何問題,安裝包的依賴直接依賴於 Npm 便可。
對於公司內網的一些項目就不是太方便了,由於咱們一般會有這樣的項目結構:前端

項目結構

對於 npm 公用包來講是比較方便的,直接引用便可。而內網的代碼應該怎麼引入呢?大概有如下幾種方式:git

  1. npm 公有包
  2. npm 私有包
  3. 搭建 npm 私有服務器
  4. git 倉庫

公有包確定是知足不了需求的,由於全部人都能下載包,也就意味着代碼是被泄漏了,首先被排除。npm 私有包是收費的,
而搭建 npm 服務器也是須要必定成本的,因此最好的方案天然是採用 npm 安裝 git 倉庫的方式了。github

下看 npm 對於安裝 git 倉庫的命令:npm

npm install <git remote url>

實際上就是直接 install 一個 URL 而已。對於一些公有倉庫, npm 仍是作了一些集成的,好比 github等(示例所有出自 npm 官方文檔):json

npm install github:mygithubuser/myproject
npm install bitbucket:mybitbucketuser/myproject
npm install gitlab:myusr/myproj#semver:^5.0

若是咱們直接安裝 github 上,使用網址的方式能夠表示爲:bash

npm install git+https://isaacs@github.com/npm/npm.git

看下 npm 安裝 git 倉庫的協議:服務器

<protocol>://[<user>[:<password>]@]<hostname>[:<port>][:][/]<path>[#<commit-ish> | #semver:<semver>]

<protocol> is one of git, git+ssh, git+http, git+https, or git+file.ssh

If #<commit-ish> is provided, it will be used to clone exactly that commit. If the commit-ish has the format #semver:<semver>, <semver> can be any valid semver range or exact version, and npm will look for any tags or refs matching that range in the remote repository, much as it would for a registry dependency. If neither #<commit-ish>or #semver:<semver>is specified, then master is used.ide

即 protocol 支持 git, git+ssh, git+http, git+https, git+file,私有倉庫須要用戶名和密碼時須要填寫用戶名和密碼,semver 表示須要使用的版本號, 不過貌似不生效。(npm 中有個包 semver 是專門用於比較包的版本號大小)工具

直接寫 #branch 表示須要安裝的分支號。

因此在開發過程當中咱們能夠這麼寫包:

npm i git+https://username:password@git.example.com/path/reposity#master

或者使用打的 tag

npm i git+https://username:password@git.example.com/path/reposity#1.0.0

可能存在的問題是:
因爲新版的 npm install 在安裝時會使用 package-lock.json, 有時候同一分支不會從 github 上拉取最新的,
可能須要手動再安裝一下(拿本身的倉庫試了下,果真不會更新),因此安裝時儘可能以 tag 爲標籤進行安裝,這樣確保代碼是正確的

此外,因爲私有倉庫都是須要密碼的,這個時候須要提供一個公共帳號和密碼,某種程度上不利於管理吧

相關文章
相關標籤/搜索