Phoenix Watcher报错:可执行文件不存在,命令行执行却正常
解决Phoenix项目TypeScript Watcher启动报错问题
可能的原因
Phoenix的Watcher在启动子进程时,工作目录或环境变量与手动执行命令时存在差异,导致相对路径的tsc无法被正确解析;或者直接调用tsc脚本时,其Shebang指定的Node路径在Watcher环境中不可用。
解决方案
方案1:用npx调用tsc(推荐)
无需手动指定相对路径,让npx自动查找node_modules中的可执行文件,配置修改为:
typescript: [ "npx", "tsc", "--noEmit", "--watch", "-p", "assets" ]
方案2:用Node直接执行tsc脚本
明确指定用Node运行tsc,避免Shebang路径问题:
typescript: [ "node", "./assets/node_modules/typescript/bin/tsc", "--noEmit", "--watch", "-p", "assets" ]
方案3:使用绝对路径
在配置中通过Elixir的Path.expand生成绝对路径,确保Watcher能准确定位到tsc:
typescript: [ Path.expand("./assets/node_modules/typescript/bin/tsc"), "--noEmit", "--watch", "-p", "assets" ]
额外检查
如果以上方案无效,可执行以下命令确保tsc有可执行权限:
chmod +x ./assets/node_modules/typescript/bin/tsc
内容的提问来源于stack exchange,提问作者bezzoon
相关产品推荐
相关产品推荐

