【Android】TermuxでTypeScript環境構築
AndroidとTermuxでTypeScript
というプログラミング言語の実行環境を作ります。
インストールから動作確認までのメモ。
実行環境
GoogleプレイからTermuxをダウンロード・インストール済みの状態からスタートします。
参考リンク
1. TermuxにNode.jsをインストールする
Node.jsは、JavaScriptの実行環境だとか。Pythonで言うところのpython.exe。
Node.jsをインストールします。
$ pkg install nodejs
ダウンロードで17MBほど。展開して100MBぐらいになるがOKか?と訊かれる。
難なくインストールできた。
【追記】
グローバル環境(どのディレクトリでも)使えるようにするには-g
オプションをつけて、
$ pkg install -g nodejs
とすべし、とある。インストール後にこのコマンドでやり直しても特に変わりは無かった。
【追記おわり】
2. TermuxでTypeScriptをインストールする
Pythonのライブラリ管理ツールはpip
ですが、Node.jsのライブラリはnpm
というものだそうです。
Node.jsをインストールしたらnpm
が使えるようになる。
npm
でTypeScriptをインストールします。
$ npm install typescript
以下の表示がでました。
npm WARN saveError ENOENT: no such file or directory, open '/data/data/com.termux/files/home/package.json' npm notice created a lockfile as package-lock.json. You should commit this file. npm WARN enoent ENOENT: no such file or directory, open '/data/data/com.termux/files/home/package.json' npm WARN home No description npm WARN home No repository field. npm WARN home No README data npm WARN home No license field. + typescript@4.2.2 added 1 package from 1 contributor and audited 1 package in 28.895s found 0 vulnerabilities
たぶんこれでTypeScriptがインストールできた。
【追記】
グローバル環境(どのディレクトリからでも)で動くようにするには、-g
オプションをつけて、
$ npm install -g typescript
とすべし、とある。
【追記おわり】
ホームディレクトリに作られたもの
ここまでで下記の物が作られた。
- package-lock.json(ファイル)
- node_modules/(フォルダ)
- .npm/(隠しフォルダ)
以上で、TypeScript言語を実行する環境が整った。特に問題なくできた。
3. 実行確認
3.1 TypeScript言語でファイルを書く
書けませんので、写経で済まします。
適当なフォルダにVimエディタでファイルを作りました。
first.ts
const message:string = 'Hello! TypeScript!'; console.log(message);
JavaScriptの勉強もやっていないので違いが分からない(-_-;)
TypeScript言語で書いたts
ファイルは、一旦JavaScriptにコンパイルしてjs
ファイルに翻訳するのだと。では次。
3.2 TypeScriptをJavaScriptにコンパイル
Termuxで次のコマンドを実行し、翻訳します。新たにjs
ファイルが作られます。
$ tsc first.ts
first.ts
から翻訳されたfirst.js
が同フォルダに作られた。
できたfirst.jsの中身は、
var message = 'Hello! TypeScript!'; console.log(message);
曖昧な自然言語の翻訳より、コンピュータ言語間の翻訳はだいぶん簡単にできるんじゃないか。ピシャッと規格が決まってる分だけ。
3.3 JavaScriptをターミナルで実行
node
コマンドで、できたjs
ファイルを実行します。実行結果はTermuxに出力されます。
$ node first.js
Hello! TypeScript!
JavaScriptはhtml内に書いてブラウザで動くものなのでしょう、
グラフィカルなものを動作させるプログラムはどうなるのかな?
【追記】
ターミナルに$ python
と入力すると、REPLと呼ばれ一行ずつ実行する対話型のPythonインタープリタが起動します。
Node.jsの場合も同じように、$ node
とだけ入力するとJavaScriptを一行ずつ実行する対話型インタープリタが起動する。
$ node Welcome to Node.js v14.15.4. Type ".help" for more information. >
ここにJavaScriptを書く。「Hello World!」と表示させるには
>console.log("Hello World!") Hello World! undefined ←灰色の文字で「未定義」の説明がついた >
抜けるには.exit
と入力実行するか、Ctrl+d
を入力する。
【追記おわり】
TypeScriptファイルをnodeコマンドで実行するとエラーになる
コンパイルする前のts
ファイルを
nodeコマンドで実行するとどうなるか。
$ node first.ts
const message:string = 'Hello! TypeScript!'; ^^^^^^^ SyntaxError: Missing initializer in const declaration at wrapSafe (internal/modules/cjs/loader.js:979:16) at Module._compile (internal/modules/cjs/loader.js:1027:27) at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10) at Module.load (internal/modules/cjs/loader.js:928:32) at Function.Module._load (internal/modules/cjs/loader.js:769:14) at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12) at internal/main/run_main_module.js:17:47
エラーがでました。
まとめ
TermuxでTypeScript実行環境を構築する手順
$ pkg install nodejs
$ npm install typescript
【追記】
グローバル環境(どのディレクトリからでも実行可能)でインストールするには-g
オプションをつけて
$ pkg install -g nodejs
$ npm install -g typescript
【追記おわり】
TermuxでTypeScriptファイルをコンパイルする手順
$ tsc ファイル名.ts
JavaScriptファイルをターミナル上で実行する手順
$ node ファイル名.js
以上、AndroidのTermuxでTypeScriptの実行環境構築から動作確認まで。