mBaaSのNode.jsでは幾つかの制約がありますが、それらを解決できる(かも知れない)Tipsを二つ紹介します。
外部ライブラリを読み込みたい
スクリプト機能では幾つかのライブラリを準備していますが、足りないこともあるでしょう。要望いただければ検証して、追加が行われる可能性もありますが、反映までにはタイムラグもあります。
そこでライブラリをスクリプトの中に取り込んでしまう方法が便利です。WebブラウザであればBrowserifyを使いますが、Node.jsの場合はnccを使うのが便利です。
元のコードは通常のNode.jsとして記述します。
const speakeasy = require('speakeasy');
そしてビルドします。
ncc build totp.js
そうするとデフォルトで dist/index.js
として外部ライブラリを取り込んだファイルが生成されます。
サイズを縮小する
外部ライブラリを取り込むと、スクリプトのファイルサイズが肥大化します。スクリプト機能のサイズ制限は32KBであり、それを超えてしまう可能性もあるでしょう。nccは元ファイルをそのままくっつけるので、コメントなどがそのまま記述されています。これらをミニファイすることでサイズ軽減を図れます。
ミニファイライブラリとして uglify-js
が知られていますが、新しいJavaScriptの書き方(constなど)に対応していません。そこで butternut を使います。
npm i butternut -D
使い方は以下のようにコマンドを打つだけです。
npx squash dist/index.js > dist/totp.js
これでミニファイされたJavaScriptが入手できます。
まとめ
コメント量にもよりますが、筆者の環境では35740 bytes が 8379 bytesと約1/4まで軽減されました。より複雑なコードをスクリプトで実現する際には、これらのテクニックを使ってみてください。