如何使用多个嵌套的私有节点模块?

时间:2016-01-06 07:46:20

标签: node.js git github node-modules

以下是我的项目结构

package.json

所有这些都是私人存储库。我在基本应用程序{ name: "Base Application", dependencies: { .. node-module1: "git+https://github.com/abc/node-module1.git", node-module2: "git+https://github.com/abc/node-module2.git", .. } }

中添加了以下内容
HTTPS

我使用npm install版本(https://github.com/abc/base-application.git)克隆了我的存储库,提示我输入用户名和密码。克隆后,当我尝试npm ERR! Cloning into bare repository '/home/ubuntu/.npm/_git-remotes/git-https-github-com-abc-node-module1-git-3bd17fdf3s45ae0sdfadf68sdegk72e3'... npm ERR! remote: Invalid username or password. npm ERR! fatal: Authentication failed for 'https://github.com/abc/node-module1.git/' 时,我收到以下错误

package.json

经过一番挖掘后,我修改了我的{ name: "Base Application", dependencies: { .. node-module1: "git+https://github.com/abc/node-module1.git#v0.0.1", node-module2: "git+https://github.com/abc/node-module2.git#v0.0.1", .. } } 以包含建议here的版本。

insert into query (date_time, userid, user_traits, query_sql, status, description, is_scheduled_row) 
values ('2016-01-06 02:39:01', '307', '0,3598,1937,13891,37746,22082,2596,2431,12850,3917,1234784,44712,14638,14418,12850,2631,25003,11428,27450,2592,23593,11441,2826,36330,32219,32351,20720,13997,2594,2467,15687', 'Select * from gl_base_schema.item where national_status_cd = 'A'', 'in queue', ' (Scheduled Query #413) Pull all items where National Status Code is 'A'', 1);

这很有效。但问题是我被提示输入用户名和密码多次。这也将导致每次进行一分钟更改时在节点模块中创建版本的复杂性。

那么我如何使用私有节点模块作为我们如何使用公共模块。

2 个答案:

答案 0 :(得分:2)

检查您是否在package.json中表明身份,如“How to use private Github repo as npm dependency

中所述
  

https和oauth create an access token具有“repo”范围,然后使用以下语法:

"package-name": "git+https://<github_token>:x-oauth-basic@github.com/<user>/<repo>.git"

这样,npm install应该可以访问这些私人仓库,而无需再次询问凭据。

答案 1 :(得分:1)

您也可以引用特定的分支(例如master),而不是版本,这样您就不需要为每次提交提供版本。

"node-module1": "git://github.com/abc/node-module1.git#master"

但是,我建议坚持使用semantic versioning,并考虑设置您自己的私有NPM存储库,例如https://github.com/rlidwka/sinopia。要测试另一个模块/应用程序中正在开发的模块,您可以使用npm link,然后在完成后发布版本化模块,每当您进行API不兼容的更改时,总是碰到主要版本。