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

源代码控制集成问题:只读文件导致tns run android无法运行

解决NativeScript tns run android 因只读文件报错EPERM的问题

我之前在使用NativeScript开发时也碰到过一模一样的问题!当项目文件处于源代码控制的只读状态(比如全部签入后),tns run android 会因为无法修改文件而抛出EPERM错误,一个文件解决完又冒出来下一个,确实很头疼。不用全量签出文件的话,可以试试下面这些方法:

方法1:批量移除项目文件的只读属性(Windows专属)

因为你的路径是Windows系统的,直接用系统命令就能一次性解除所有文件的只读限制:

attrib -R C:\NS\dev\dsapp1\* /S /D
  • -R:移除文件的只读属性
  • /S:递归处理所有子目录里的文件
  • /D:同时处理目录本身

或者更直观的图形化操作:右键点击项目根目录 → 属性 → 取消「只读」的勾选 → 弹出窗口选择「将更改应用于此文件夹、子文件夹和文件」→ 确定。

方法2:配置NativeScript避免修改源文件

NativeScript的构建过程中会修改一些配置或样式文件,你可以通过配置让它尽量不改动源文件:

  • 打开项目根目录的 nativescript.config.ts(旧版是nativescript.config.js),检查是否有assets或resources相关的配置,把不需要动态修改的文件标记为静态资源。
  • 确保platforms/、node_modules/、.nativescript/这类构建生成的目录已经被排除在源代码控制之外(比如加到.gitignore或对应工具的忽略列表),这些目录的文件本来就不需要签入,也不会被设为只读。

方法3:调整源代码控制工具的工作区设置

如果用的是TFS、SVN这类工具,可以直接修改工作区的默认属性,让已签入的文件保持可写:

  • TFS:打开团队资源管理器 → 管理工作区 → 编辑你的工作区 → 取消勾选「将已签入的文件设为只读」。
  • SVN:在项目根目录执行svn propset svn:needs-lock "" . --recursive,移除需要锁定才能编辑的属性,这样文件签入后也会保持可写状态。

方法4:临时使用无监听模式运行

如果只是临时要跑起来验证功能,可以试试关闭文件监听:

tns run android --no-watch

这个方法会跳过热重载的文件监听逻辑,减少对文件的修改操作,但开发时不太方便,适合临时测试场景。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 03:32:22