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

Angular4中Ubuntu环境使用sweetalert2报错,安装停滞92%求助

解决Ubuntu(WSL)环境下Angular4项目中SweetAlert2安装与调用问题

看你的路径是/mnt/c/...,应该是在WSL(Windows子系统Linux)环境下操作的,这种跨文件系统的场景很容易出现权限、缓存或者文件同步的小问题,咱们一步步来解决:

第一步:先搞定npm安装停滞在92%的问题

安装卡住大概率是缓存冲突,或者WSL访问Windows NTFS文件系统的性能/权限问题,试试这些操作:

  • 先强制清理npm缓存:
    npm cache clean --force
    
  • 删除项目根目录下的node_modules文件夹和package-lock.json文件:
    rm -rf node_modules package-lock.json
    
  • 关键操作:把你的Angular项目从/mnt/c/...的Windows路径,移到Ubuntu本地文件系统(比如/home/你的用户名/projects/目录下)——WSL访问Windows文件系统不仅慢,还经常出现文件权限、同步不全的问题,这很可能是安装卡住的核心原因。
  • 重新执行安装命令:
    npm install --save sweetalert2
    
    如果还是卡,试试用yarn替代npm(先安装yarn:sudo npm install -g yarn),再执行:
    yarn add sweetalert2
    

第二步:解决"ENOENT: no such file or directory"文件找不到的问题

安装成功后如果还是找不到sweetalert2.js,检查这几个点:

  • 确认Angular4的配置文件angular-cli.json(Angular6及以上是angular.json)里的脚本引用是否正确:
    打开angular-cli.json,找到apps[0].scripts数组,添加SweetAlert2的脚本路径:
    "scripts": [
      "../node_modules/sweetalert2/dist/sweetalert2.js"
    ]
    
    注意路径要和你的项目结构匹配,如果node_modules在项目根目录,路径写成./node_modules/...也可以。
  • 如果是在组件里直接调用swal,要在组件顶部声明变量避免TypeScript报错:
    import { Component } from '@angular/core';
    
    declare var swal: any;
    
    @Component({
      selector: 'app-your-component',
      templateUrl: './your-component.component.html'
    })
    export class YourComponentComponent {
      showAlert() {
        swal('搞定啦!SweetAlert2正常工作了');
      }
    }
    
  • 最后重启Angular开发服务器(ng serve),确保配置生效。

额外排查点

如果以上步骤还是不行,检查项目文件夹的权限:

sudo chown -R $USER:$USER /你的项目路径

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:26:58