Ubuntu服务器Dart API运行报错:Compilation无输出及PathNotFoundException
解决Ubuntu服务器上Dart项目构建失败的问题
针对你遇到的重启服务器后Dart项目无法构建、dart run和dart compile exe报错的情况,尝试以下步骤:
1. 检查磁盘空间与目录权限
- 确认服务器磁盘是否已满:
df -h - 检查项目目录及
.dart_tool的权限(重启后权限可能出现异常):ls -ld /root/veyilapi /root/veyilapi/.dart_tool - 若权限异常,重置项目目录权限:
chmod -R 755 /root/veyilapi
2. 调整inotify监视限制
Dart构建依赖inotify机制,Ubuntu默认的监视数量可能不足以支撑构建流程:
- 临时调整限制:
echo 524288 | tee /proc/sys/fs/inotify/max_user_watches - 永久生效:编辑
/etc/sysctl.conf,添加一行:
执行以下命令让配置生效:fs.inotify.max_user_watches=524288sysctl -p
3. 彻底清理缓存并重新初始化项目
- 删除全局pub缓存和项目本地构建产物:
rm -rf ~/.pub-cache rm -rf /root/veyilapi/.dart_tool /root/veyilapi/build - 重新拉取项目依赖:
dart pub get - 直接指定入口文件运行,绕开pubspec的executable配置:
dart run bin/veyilapi.dart
4. 检查进程占用情况
- 查找是否有进程占用项目相关文件:
lsof | grep /root/veyilapi/.dart_tool - 若找到相关进程,使用
kill -9 <PID>终止进程后再尝试构建。
5. 验证Dart环境可用性
- 新建一个最小化服务器项目测试基础环境:
如果该项目能正常运行,说明原项目存在文件损坏或配置问题,可逐步迁移代码到新项目中排查。dart create -t server test_dart_server cd test_dart_server dart run
6. 重新安装Dart SDK(确保完整性)
- 卸载现有SDK后,从官方渠道重新安装:
rm -rf /usr/lib/dart curl -fsSL https://dart.dev/get-dart | bash - 重启终端后验证版本:
dart --version
内容的提问来源于stack exchange,提问作者the cosmic introvert dude
相关产品推荐
相关产品推荐

