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文件系统不仅慢,还经常出现文件权限、同步不全的问题,这很可能是安装卡住的核心原因。 - 重新执行安装命令:
如果还是卡,试试用yarn替代npm(先安装yarn:npm install --save sweetalert2sudo 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
相关产品推荐
相关产品推荐

