Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
风弥漫了夏天
nvm-windows
提交
5c8ace2e
N
nvm-windows
项目概览
风弥漫了夏天
/
nvm-windows
与 Fork 源项目一致
从无法访问的项目Fork
通知
3
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
N
nvm-windows
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
5c8ace2e
编写于
5月 10, 2016
作者:
L
lijie371
浏览文件
操作
浏览文件
下载
差异文件
add npm/nodejs proxy support
上级
0ed44309
e0d437a6
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
47 addition
and
68 deletion
+47
-68
src/nvm.go
src/nvm.go
+22
-14
src/nvm/node/node.go
src/nvm/node/node.go
+24
-53
src/nvm/web/web.go
src/nvm/web/web.go
+1
-1
未找到文件。
src/nvm.go
浏览文件 @
5c8ace2e
...
...
@@ -407,29 +407,35 @@ func list(listtype string) {
fmt
.
Println
(
"No installations recognized."
)
}
}
else
{
_
,
stable
,
unstable
:=
node
.
GetAvailable
()
_
,
lts
,
stable
,
_
:=
node
.
GetAvailable
()
releases
:=
len
(
stable
)
fmt
.
Println
(
"
\n
Showing the "
+
strconv
.
Itoa
(
releases
)
+
" latest available releases.
\n
"
)
fmt
.
Println
(
"
STABLE | UNSTABLE
"
)
fmt
.
Println
(
"
LTS | STABLE
"
)
fmt
.
Println
(
" ---------------------------"
)
for
i
:=
0
;
i
<
releases
;
i
++
{
str
:=
"v"
+
stable
[
i
]
for
ii
:=
10
-
len
(
str
);
ii
>
0
;
ii
--
{
str
=
" "
+
str
str
:=
" "
if
len
(
lts
)
>
i
{
str
=
"v"
+
lts
[
i
]
for
ii
:=
10
-
len
(
str
);
ii
>
0
;
ii
--
{
str
=
" "
+
str
}
}
str
=
str
+
" | "
str2
:=
"v"
+
unstable
[
i
]
for
ii
:=
10
-
len
(
str2
);
ii
>
0
;
ii
--
{
str2
=
" "
+
str2
str2
:=
""
if
len
(
stable
)
>
i
{
str2
=
"v"
+
stable
[
i
]
for
ii
:=
10
-
len
(
str2
);
ii
>
0
;
ii
--
{
str2
=
" "
+
str2
}
}
fmt
.
Println
(
" "
+
str
+
str2
)
fmt
.
Println
(
" "
+
str
+
" | "
+
str2
)
}
//fmt.Println("\nFor a complete list, visit http://coreybutler.github.io/nodedistro
")
fmt
.
Println
(
"
\n
For a complete list, visit https://nodejs.org/download/release
"
)
}
}
...
...
@@ -471,7 +477,7 @@ func help() {
fmt
.
Println
(
" nvm off : Disable node.js version management."
)
fmt
.
Println
(
" nvm proxy [url] : Set a proxy to use for downloads. Leave [url] blank to see the current proxy."
)
fmt
.
Println
(
" Set [url] to
\"
none
\"
to remove the proxy."
)
fmt
.
Println
(
" nvm node_mirror [url] : Set a mirror to http://nodejs.org/dist/. Leave [url] blank to use default url."
)
fmt
.
Println
(
" nvm node_mirror [url] : Set a mirror to http
s
://nodejs.org/dist/. Leave [url] blank to use default url."
)
fmt
.
Println
(
" nvm npm_mirror [url] : Set a mirror to https://github.com/npm/npm/archive/. Leave [url] blank to default url."
)
fmt
.
Println
(
" nvm uninstall <version> : The version must be a specific version."
)
// fmt.Println(" nvm update : Automatically update nvm to the latest version.")
...
...
@@ -485,8 +491,10 @@ func help() {
// Given a node.js version, returns the associated npm version
func
getNpmVersion
(
nodeversion
string
)
string
{
npm
,
_
,
_
:=
node
.
GetAvailabeVersions
()
return
npm
[
nodeversion
]
.
(
string
)
_
,
_
,
_
,
npm
:=
node
.
GetAvailable
()
return
npm
[
nodeversion
]
}
func
updateRootDir
(
path
string
)
{
...
...
src/nvm/node/node.go
浏览文件 @
5c8ace2e
...
...
@@ -6,7 +6,6 @@ import(
"regexp"
"io/ioutil"
"encoding/json"
"sort"
"../arch"
"../file"
"../web"
...
...
@@ -70,7 +69,7 @@ func IsVersionInstalled(root string, version string, cpu string) bool {
func
IsVersionAvailable
(
v
string
)
bool
{
// Check the service to make sure the version is available
avail
,
_
,
_
:=
GetAvailable
()
avail
,
_
,
_
,
_
:=
GetAvailable
()
for
_
,
b
:=
range
avail
{
if
b
==
v
{
...
...
@@ -108,65 +107,37 @@ func (s BySemanticVersion) Less(i, j int) bool {
return
v1
.
GTE
(
v2
)
}
func
GetAvailabeVersions
()
(
map
[
string
]
interface
{},
map
[
string
]
interface
{},
map
[
string
]
interface
{}){
// Check the service to make sure the version is available
// modified by lzm at 4-7-2016, to chinese guys github maybe blocked at anytime.why not use the http://nodejs.org/dist/index.json?
//text := web.GetRemoteTextFile("https://raw.githubusercontent.com/coreybutler/nodedistro/master/nodeversions.json")
func
GetAvailable
()
([]
string
,
[]
string
,
[]
string
,
map
[
string
]
string
)
{
all
:=
make
([]
string
,
0
)
lts
:=
make
([]
string
,
0
)
stable
:=
make
([]
string
,
0
)
npm
:=
make
(
map
[
string
]
string
)
url
:=
web
.
GetFullNodeUrl
(
"index.json"
)
// Check the service to make sure the version is available
text
:=
web
.
GetRemoteTextFile
(
url
)
// Parse
var
data
interface
{}
var
data
=
make
([]
map
[
string
]
interface
{},
0
)
json
.
Unmarshal
([]
byte
(
text
),
&
data
);
//body := data.(map[string]interface{})
//_all := body["all"]
//_stable := body["stable"]
//_unstable := body["unstable"]
//allkeys := _all.(map[string]interface{})
//stablekeys := _stable.(map[string]interface{})
//unstablekeys := _unstable.(map[string]interface{})
body
:=
data
.
([]
interface
{})
allkeys
:=
make
(
map
[
string
]
interface
{})
stablekeys
:=
make
(
map
[
string
]
interface
{})
unstablekeys
:=
make
(
map
[
string
]
interface
{})
for
_
,
temp
:=
range
body
{
item
:=
temp
.
(
map
[
string
]
interface
{})
key
:=
strings
.
TrimLeft
(
item
[
"version"
]
.
(
string
),
"v"
)
value
:=
item
[
"npm"
]
if
value
!=
nil
{
allkeys
[
key
]
=
value
.
(
string
)
version
,
_
:=
semver
.
New
(
key
)
if
(
version
.
Major
!=
0
&&
version
.
Major
%
2
==
0
)
||
version
.
Minor
%
2
==
0
{
stablekeys
[
key
]
=
value
.
(
string
)
}
else
{
unstablekeys
[
key
]
=
value
.
(
string
)
}
}
}
return
allkeys
,
stablekeys
,
unstablekeys
}
for
_
,
element
:=
range
data
{
func
GetAvailable
()
([]
string
,
[]
string
,
[]
string
)
{
all
:=
make
([]
string
,
0
)
stable
:=
make
([]
string
,
0
)
unstable
:=
make
([]
string
,
0
)
var
version
=
element
[
"version"
]
.
(
string
)[
1
:
]
all
=
append
(
all
,
version
)
allkeys
,
stablekeys
,
unstablekeys
:=
GetAvailabeVersions
()
if
val
,
ok
:=
element
[
"npm"
]
.
(
string
);
ok
{
npm
[
version
]
=
val
}
for
nodev
,
_
:=
range
allkeys
{
all
=
append
(
all
,
nodev
)
}
for
nodev
,
_
:=
range
stablekeys
{
stable
=
append
(
stable
,
nodev
)
}
for
nodev
,
_
:=
range
unstablekeys
{
unstable
=
append
(
unstable
,
nodev
)
switch
v
:=
element
[
"lts"
]
.
(
type
)
{
case
bool
:
if
v
==
false
{
stable
=
append
(
stable
,
version
)
}
case
string
:
lts
=
append
(
lts
,
version
)
}
}
sort
.
Sort
(
BySemanticVersion
(
all
))
sort
.
Sort
(
BySemanticVersion
(
stable
))
sort
.
Sort
(
BySemanticVersion
(
unstable
))
return
all
,
stable
,
unstable
return
all
,
lts
,
stable
,
npm
}
src/nvm/web/web.go
浏览文件 @
5c8ace2e
...
...
@@ -14,7 +14,7 @@ import(
)
var
client
=
&
http
.
Client
{}
var
nodeBaseAddress
=
"http://nodejs.org/dist/"
var
nodeBaseAddress
=
"http
s
://nodejs.org/dist/"
var
npmBaseAddress
=
"https://github.com/npm/npm/archive/"
func
SetProxy
(
p
string
){
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录