redev

technical miscellaneous memorandum

TypeScript事始め

環境はLinux Mint 20.3 Cinnamon。

ここを参考に着手。
qiita.com

TypeScriptをコンパイルするのに、Node.jsに同梱されているnpmコマンドが要るとのこと。
早速、

$ apt show npm

と実行すると、nodejs含め恐ろしい量の依存関係が表示される。
Node.jsの公式サイト(https://nodejs.org/ja/)を開くと、推奨版は16.14.0 LTS(2022/02/21時点)。
一方で、リポジトリのnodejsはどうなっているかというと

$ apt show nodejs
Package: nodejs
Version: 10.19.0~dfsg-3ubuntu1
 :

と明らかに古い。
どうせなら新しい方を、と公式サイトからtarボールをDLしてみたが、makeファイルが有るわけでもなく、インストール方法も分からなければ依存関係もクリア出来なさそうで、手詰まりな雰囲気しかしない。

そこで、以下を見つけた。
qiita.com
求めていた情報にピッタリ。というわけで、

$ sudo apt install -y nodejs npm
$ node -v
v10.19.0

更に進める

$ sudo npm install n -g
/usr/local/bin/n -> /usr/local/lib/node_modules/n/bin/n
+ n@8.0.2
added 1 package from 2 contributors in 0.434s
$ sudo n stable
  installing : node-v16.14.0
       mkdir : /usr/local/n/versions/node/16.14.0
       fetch : https://nodejs.org/dist/v16.14.0/node-v16.14.0-linux-x64.tar.xz
   installed : v16.14.0 (with npm 8.3.1)

Note: the node command changed location and the old location may be remembered in your current shell.
         old : /usr/bin/node
         new : /usr/local/bin/node
If "node --version" shows the old version then start a new shell, or reset the location hash with:
hash -r  (for bash, zsh, ash, dash, and ksh)
rehash   (for csh and tcsh)

npm install nが何なのかは分からないが(後で要確認)、最新のNode.jsが入った模様。
そして古いNode.jsを削除し、ログオン(これも分からないでやっているので後で要確認)。

$ sudo apt purge -y nodejs npm
$ exec $SHELL -l
$ node -v
v16.14.0

ここまで来て漸く冒頭のサイトに戻り、TypeScriptコンパイラをインストールする。

$ sudo npm install -g typescript

added 1 package, and audited 2 packages in 1s

found 0 vulnerabilities
npm notice 
npm notice New minor version of npm available! 8.3.1 -> 8.5.1
npm notice Changelog: https://github.com/npm/cli/releases/tag/v8.5.1
npm notice Run npm install -g npm@8.5.1 to update!
npm notice

新しいnpmが有るとか云うてるが取り敢えず置いとく。

$ tsc -v
Version 4.5.5

cc, javacみたいなものか。tscでバージョン確認。
hello.tsをエディタで作成及び保存し、コンパイル

$ tsc hello.ts

これでhello.jsファイルが生成される。中身を見ると、javascriptだ。
Node.jsで実行。

$ node hello.js
Hello World