Developing on a Chromebook via SSH
I have a very old and cheap Chromebook that I like to use for some light development when I want to sit outside on a nice day. It's an ASUS with an ARM processor and hasn't been supported in ages; not something very well suited to development.
However, I've gotten it to work pretty well with a few tweaks. I'd turned on developer mode almost as soon as I'd gotten it, and I'd installed crouton forever ago, but I don't even need to boot into Linux to do some serious work!
The first thing I need to do is SSH into my desktop machine. To do that, I need to open a new terminal tab on the Chromebook with CTRL + ALT + T. Then, I type
shell into the terminal window to get a bash prompt.
From there, I have access to
ssh. I can
ssh myusername@mylocalcomputer and get my files from there!
I use Vim for editing all my files. On desktop I use PHPStorm and WebStorm with Vim bindings, so I'm very used to using Vim. It's a little less convenient without the autocompletion and hints that the Jet Brains IDEs have, but it works just fine for me.
A roadblock I ran into was compiling with npm. I would ssh into my desktop computer to make some file changes, but
npm run build would fail because the version of node I was using was incompatible with one of the packages I'm using.
I use nvm on my Ubuntu desktop, but the version of node being used via ssh was located at
/usr/local/bin/node, not nvm. It turned out that I already had the n version manager installed, so all I had to do was
n 12.18.3 and then run
n from the command line to pick the version that I wanted to use.
On my Chromebook, I can run
node -v and it will now show
12.18.3 and I can build! The build and copy commands all work on my desktop machine, and I can open my test page, pointing to my desktop's IP address, and see my changes.
It feels redundant now to have both nvm and n installed, but there doesn't seem to be any conflict. Nvm seems to override n in my Ubuntu terminal, but n's version is what's used over SSH.
I'd like to eventually get
sshfs working. Currently, when I try to mount my desktop's dev folder to my Chromebook, I receive a "Connection reset by peer" error. It would be nice to just open up my Chromebook and have the directory already mounted and ready to go. However, I haven't been able to fix that particular problem yet.