以下是我的项目结构
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);
这很有效。但问题是我被提示输入用户名和密码多次。这也将导致每次进行一分钟更改时在节点模块中创建版本的复杂性。
那么我如何使用私有节点模块作为我们如何使用公共模块。
答案 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不兼容的更改时,总是碰到主要版本。