You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无npm在线环境生成Angular CLI离线安装tgz包的方案求助

生成包含完整依赖的Angular CLI离线安装包(Windows原生工具实现)

前提条件

  • 有网Windows电脑:自带PowerShell、curl(Windows 10+默认预装,Win7可改用PowerShell的Invoke-WebRequest)
  • 离线Windows电脑:已安装符合Angular CLI版本要求的Node.js和npm(提前确认对应CLI版本的Node.js兼容范围)

步骤1:在有网电脑上获取所有依赖的tgz包

1.1 获取Angular CLI最新稳定版元数据

打开PowerShell,执行以下命令:

# 下载Angular CLI最新版的npm元数据文件
Invoke-WebRequest -Uri "https://registry.npmjs.org/@angular/cli/latest" -OutFile "cli-latest.json"

# 解析元数据,提取版本号和依赖列表
$cliData = Get-Content "cli-latest.json" | ConvertFrom-Json
$cliVersion = $cliData.version
$allDeps = $cliData.dependencies + $cliData.peerDependencies | Where-Object { $_ -ne $null }

# 创建存放安装包的目录
New-Item -ItemType Directory -Path "angular-cli-packages" -Force
Set-Location "angular-cli-packages"

1.2 递归下载所有依赖的tgz文件

在同一PowerShell窗口中,运行以下原生脚本(无需额外工具):

function Download-NpmPackage {
    param(
        [string]$PackageName,
        [string]$Version
    )

    # 处理@开头的包名格式(如@angular/cli)
    $url = "https://registry.npmjs.org/$PackageName/-/$PackageName-$Version.tgz"
    
    # 跳过已下载的包
    if (-not (Test-Path "$PackageName-$Version.tgz")) {
        Write-Host "Downloading $PackageName@$Version..."
        try {
            Invoke-WebRequest -Uri $url -OutFile "$PackageName-$Version.tgz" -ErrorAction Stop
        }
        catch {
            Write-Warning "Failed to download $PackageName@$Version : $_"
            return
        }
    }

    # 递归下载当前包的依赖
    $metaUrl = "https://registry.npmjs.org/$PackageName/$Version"
    $metaPath = "$PackageName-$Version.json"
    Invoke-WebRequest -Uri $metaUrl -OutFile $metaPath -ErrorAction SilentlyContinue
    if (Test-Path $metaPath) {
        $metaData = Get-Content $metaPath | ConvertFrom-Json
        $deps = $metaData.dependencies | Where-Object { $_ -ne $null }
        foreach ($dep in $deps.GetEnumerator()) {
            Download-NpmPackage -PackageName $dep.Key -Version $dep.Value
        }
        Remove-Item $metaPath -Force
    }
}

# 先下载Angular CLI主包
Download-NpmPackage -PackageName "@angular/cli" -Version $cliVersion

# 下载所有顶层依赖
foreach ($dep in $allDeps.GetEnumerator()) {
    Download-NpmPackage -PackageName $dep.Key -Version $dep.Value
}

1.3 整理文件

脚本执行完成后,angular-cli-packages目录会包含Angular CLI主包及其所有递归依赖的tgz文件,删除临时的cli-latest.json即可。


步骤2:在离线电脑上安装Angular CLI

  1. 将angular-cli-packages文件夹复制到离线电脑的任意路径(如C:\angular-cli-offline)
  2. 打开命令提示符(CMD)或PowerShell,进入该目录:
    cd C:\angular-cli-offline
    
  3. 将所有tgz包添加到npm本地缓存:
    for %f in (*.tgz) do npm cache add "%f"
    
  4. 全局安装Angular CLI(替换x.x.x为实际下载的CLI版本号):
    npm install -g @angular/cli-x.x.x.tgz --offline
    
  5. 验证安装:
    ng version
    

注意事项

  • 若离线电脑Node.js版本不符合要求,需提前在有网环境下载对应Node.js离线安装包,复制到离线电脑安装。
  • 脚本会跳过已下载的包,中途中断可重新运行,无需重复下载。
  • 若部分包下载失败,可单独执行对应包的下载命令重试。

内容的提问来源于stack exchange,提问作者James Jackson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 00:15:18