部署AngularJS+Node.js(TypeScript)项目至render.com遇tsc权限拒绝问题
解决Render.com部署Node.js+TypeScript项目时的“tsc: Permission denied”错误
针对你在Render.com部署前端AngularJS、后端Node.js+TypeScript项目时遇到的sh: 1: tsc: Permission denied错误,结合你已尝试的方案,补充以下可行解决办法:
调整npm脚本中的tsc调用方式
直接调用tsc可能会尝试使用全局安装的编译器,而Render环境中全局工具可能存在权限限制。修改package.json的构建脚本,将tsc替换为npx tsc,强制使用本地node_modules内的TypeScript编译器:"scripts": { "build": "npx tsc" }确认Render构建命令的正确性
在Render项目的构建设置中,确保使用npm run build(或你自定义的构建脚本名)而非直接执行tsc。直接调用tsc会绕过npm的本地依赖路径,导致权限或找不到命令的问题。将typescript移至生产依赖
Render默认构建环境可能不会安装devDependencies,如果你的构建步骤需要在生产环境执行TypeScript编译,执行以下命令将typescript从开发依赖转为生产依赖:npm install typescript --save之后重新提交
package.json和package-lock.json到仓库。临时修复:调整tsc可执行权限
如果以上方法无效,可在构建前添加权限调整步骤,在package.json中新增前置脚本:"scripts": { "prebuild": "chmod +x node_modules/.bin/tsc", "build": "tsc" }该命令会确保本地
tsc二进制文件拥有可执行权限。
内容的提问来源于stack exchange,提问作者Prama Karthick
相关产品推荐
相关产品推荐

