Whenever I end up wasting my own time trying to get something working, I like to post about it. Simply because, inevitably, I had problems finding blog posts that might’ve helped me. This is one of those occasions.
I’ve been trying to install Mono on Mac OSX (Yosemite) using Homebrew. Homebrew is pretty nifty, generally.
brew install mono – everything seemed ok. However, when I tried to run mono from the terminal, the command was not recognised.
I spent a little while googling around, some of the advice suggested adding the path to mono to /etc/paths.
Eventually, it became apparent that running
brew doctor might help. It did. It explained mono wasn’t linked properly.
brew link mono didn’t work, for permission related reasons. It turns out that Homebrew requires your account to own various folders in order for certain operations to work. Eventually, this did the trick:
chown -R $USER /usr/local
Running that, and then attempting to link mono, did the trick.
Go and check it out:
Lots of goodness, including the very handy tsconfig.json support.
npm update -g typescript
I recently abandoned my trusty old Windows 8.1 laptop in favour of a Macbook.
This was for a couple of reasons – firstly, the Windows machine had been degenerating over time to the point where the sound no longer worked, sleep mode caused problems, plugging a charger in would cause the system to hang, and so on. All things that I could’ve dicked around with and potentially resolved, but it was getting old and I saw a good deal for a Macbook online.
VS Code: https://code.visualstudio.com/
Why is TypeScript so good? It’s just very easy to use and the benefits, especially when coupled with a smart IDE like VS Code, are immediate. You get all the compile-time validation benefits of a strongly typed language like C# without them being enforced at every opportunity.
The workflow change hasn’t been massive either – I simply use the built-in task runner provided by VS Code to compile the TypeScript, and ensure it generates source maps for js > ts in order to be able to debug in-browser.
Using TypeScript in this way eliminates a whole host of mistakes and potential pitfalls that can lead to wasted time and effort.