使用npm安装github仓库中的代码

我们在使用npm下载包的时候,一般是下载在npm官网发布过的。可以指定版本,指定依赖等等。

但是,对于一个团队或公司,需要从自己的工作账号拉取代码,npm是直接支持从git仓库安装的。


npm是nodejs的官方包管理,有成千上万的包,方便了前端模块化开发。但有些前端库并没有发布到npm,但有时候项目又需要它。本文介绍通过npm如何安装github仓库代码。从而达到模块化开发的目的:

安装方法

初始化

npm init
//安装依赖 npm install
npm install <git remote url>

<protocol>://[<user>[:<password>]@]<hostname>[:<port>][:][/]<path>[#<commit-ish>]
<protocol> is one of git, git+ssh, git+http, git+https, or git+file. If no <commit-ish> is specified, then master is used

示例:

$ npm install git://[email protected]:huixisheng/zepto-lazyload.git
$ npm install https://github.com/huixisheng/zepto-lazyload.git

package.json配置

"dependencies": {
  "zepto-lazyload": "git://[email protected]:huixisheng/zepto-lazyload.git"
},

定义包的版本

"dependencies": {
  "package1": "1.0.0",         // 只接受1.0.0的版本
  "package2": "1.0.x",         // 接受1.0版本的bug修复或小更新
  "package3": "*",             // 最新的版本,不推荐
  "package4": ">=1.0.0",       // 接受任何1.0.0版本后的更新
  "package5": "<1.9.0",        // 接受不超过1.9.0版本的更新
  "package6": "~1.8.0",        // 接受 >= 1.8.0 并 < 1.9.0 的版本
  "package7": "^1.1.0",        // 接受 >=1.1.0 并 < 2.0.0 的版本
  "package8": "latest",        // tag name for latest version
  "package9": "",              // 同 * 即最新版本。
  "packageX": "<1.0.0 || >=2.3.1 <2.4.5 || >=2.5.2 <3.0.0"
}

命令说明

npm install gitlab:<gitlabname>/<gitlabrepo>[#<commit-ish>]
npm install bitbucket:<bitbucketname>/<bitbucketrepo>[#<commit-ish>]
npm install gist:[<githubname>/]<gistID>[#<commit-ish>]
npm install github:<githubname>/<githubrepo>[#<commit-ish>]
npm install <githubname>/<githubrepo>[#<commit-ish>]
npm install <git remote url>
npm install (with no args, in package dir)
npm install [<@scope>/]<name>
npm install [<@scope>/]<name>@<tag>
npm install [<@scope>/]<name>@<version>
npm install [<@scope>/]<name>@<version range>
npm install <tarball file>
npm install <tarball url>
npm install <folder>

------------------问题

最近遇到的一个问题,只能从我自己fork的vue2-scrollbar项目安装。虽然已有人PR,但是作者不更新了。

安装方法

此时,package.json文件中,会出现对应的项目依赖,后面的版本号会替换成git地址

这样,只要这个json文件不变,就能正确的安装这个组件了。

results matching ""

    No results matching ""