programming language, superset of JavaScript that compiles to JavaScript
Factsheet
Anders Hejlsberg,
Luke Hoban
Anders Hejlsberg,
Luke Hoban
ยป npm install tsc
Videos
ยป npm install typescript
A few tips in order
- restart the terminal
- restart the machine
- reinstall nodejs + then run
npm install typescript -g
If it still doesn't work run npm config get prefix to see where npm install -g is putting files (append bin to the output) and make sure that they are in the path (the node js setup does this. Maybe you forgot to tick that option).
You are all messing with the global installations and -path files. Just a little error might damage every project you have ever written, and you will spend the rest of the night trying to get a console.log('hi') to work again.
If you have run npm i typescript --save-dev in your project - just try to run:
npx tsc
And see if it works before messing with global stuff (unless of course you really know what you are doing)
ยป npm install tsc-watch
It took me a while to figure out the solution to this problem - it's in the original question. You need to have a script that calls tsc in your package.json file so that you can run:
npm run tsc
Include -- before you pass in options (or just include them in the script):
npm run tsc -- -v
Here's an example package.json:
{
"name": "foo",
"scripts": {
"tsc": "tsc"
},
"dependencies": {
"typescript": "^1.8.10"
}
}
As of npm 5.2.0 you no longer need an entry in the scripts section of package.json. You can now run the compiler with npx:
npx tsc
...and you don't have to update package.json with a new script every time you want to compile with different arguments.
npm install typescript installs it locally to the project. I would go further and add --save-dev so it only gets listed under devDependencies, not dependencies.
You can still run TypeScript in that situation. Your best bet is to add entries to the "scripts" key in package.json, like this:
{
"name": "blah",
"version": "1.0.0",
"description": "...",
"scripts": {
"build": "tsc command arguments go here"
},
"keywords": [],
"author": "...",
"license": "...",
"devDependencies": {
"typescript": "^4.5.5"
}
}
Then you run that command via:
npm run build
Node.js will find tsc in node_modules and run it.
They can run it from the node_modules folder too.
./node_modules/typescript/bin/tsc
Or if you don't like that you could use npx which runs binaries from local node_modules folder.
npx tsc
ยป npm install node-typescript-compiler
I'm learning typescript and I'm trying to create a script that will execute js files created by tsc. This is my package.json:
{
"bin": "bin/tutorial.js",
"scripts": {
"start": "node bin/tutorial.js",
"prestart": "npm run build",
"build": "tsc"
}bin/tutorial.js is just a custom js file that I wrote that will execute the compiled js files in lib (tsconfig has outDir set to lib):
#!/usr/bin/env node
require('../lib/tutorial');I am able to run the script using npm start, since it will build beforehand. However if I clean the lib directory and do 'npx .' then the tsc build will never happen. This means that the lib directory will be empty and my bin/tutorial.js file won't be able to import the compiled js.
How do I ensure that my scripts executed with npx can run the build step beforehand?