Question

tsc: command not found / App Platform

Trying to deploy Node.js app (with TypeScript) with App Platform

I am getting tsc: command not found when trying to run build.

This is part of my package.json

"scripts": {
    "build": "tsc",
    "start": "node dist/index.js",
    "watch": "tsc -w",
    "dev": "nodemon dist/index.js",
    "test": "echo \"Error: no test specified\" && exit 1"
  },

Tried to run npm install --only=dev && npm run build && npm prune --production

as was suggested in the threads below, but got: Your build job failed because it was terminated. This often happens due to resource exhaustion. Error code: BuildJobTerminated

https://www.digitalocean.com/community/questions/app-platform-keeps-using-cached-node_modules-despite-changes

https://www.digitalocean.com/community/questions/how-do-you-use-node-js-devdependencies-in-the-app-platform-builds

How do I build this sucker?

Subscribe
Share

Submit an answer
You can type!ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

Did "build": "npm install --only=dev && tsc" and it looks like its working.

When you push/publish your project, the Node environment changes from development to production… and in production mode, the tsc doesn’t work since typescript is added as a devDependency…

I solved this problem by adding typescript and @types/node to my regular dependencies by running npm install typescript @types/node

it works like a charm!

This is likely due to the fact that “typescript” package is a development dependency. You should move it to production dependency since the env is production.

Thanks @madrianhorning 🙏 npm install --only=dev fixed it for me.

If you have environment variable set NODE_ENV=production then remove it as it interfares with the npm install (in production mode it doesn’t install the dev dependencies). Instead you can inline the env var like so:

"build": "NODE_ENV=production tsc"

The --only=dev did not work for me with NPM v7. Resolved by running npm install --production=false.