tk3118’s blog

技術ブログっぽいただのブログです。

【Nodejs】忘れがちなNodejsにおけるコマンド引数処理

やり方

process.argvを使います

↓公式ドキュメント nodejs.org

実際に使う際はこんな感じです。

// コマンド引数の数
const argc = process.argv.length;

// 処理
process.argv.forEach((val, index) => {
  console.log(`${index}: ${val}`);
});

注意点としては、デフォルトで2つほど引数が入ってしまっている為、 他言語で処理するときよりもindexが上に1つズレます。

参考資料

【TypeScript】Property does not exist on type

概要

Property does not exist on type これは型定義無しでJSを使用したり、requestから取ってきてパースされたJsonなどを使おうとすると起こるかと思われます。 要は、型定義ないよって話なので、 型定義 するか anyにするかで解決します。

参考資料

【TypeScript】~ using the 'esModuleInterop' flag.と言われた時の対応

概要

以下のようなエラーが出るときがあります。

This module is declared with using 'export =', and can only be used with a default import when using the 'esModuleInterop' flag.

対応としては、tsc のフラグに --esModuleInterop を付けるだけになります。 例としてはこんな感じ↓

# これを
$ tsc hoge.ts
# ↓ こうする
$ tsc hoge.ts --esModuleInterop

または, tsconfig.jsonの compilerOptionsに以下の記述をします。

"compilerOptions": {
    "esModuleInterop": true,
}

詳細

--esModuleInteropflagの説明に関しては、
こちらの記事が参考になるかと思います。 qiita.com

【その他】GoogleCalenderのタスクが「非参加」かつ「非表示」になった時の対処法

対処法

結論から言うと、タスクの削除が行われています。 GoogleCalenderのタスクを削除すると、 相手からは、非参加として表示され、 自分からはそもそもタスクがない状態として表示されます。

これらは、外部のサービスに対してGoogleCalenderにアクセスを許可していると起こる可能性があります。

対処法としては以下の事を行い、削除されたタスクを「復元」する事で解消できます。 www.google.com

やる事

  1. ゴミ箱リストを開く
  2. 復元したいタスクを選択して復元する

ゴミ箱リストを開く

以下画像の「歯車マーク」から「ゴミ箱」を選択します。 https://www.iscle.com/wp-content/uploads/2019/06/google-calendar-fukugen-1.png

復元したいタスクを選択して復元する

ゴミ箱リストからタスクを選択してゴミ箱の横にある 「戻す」マークのボタンから復元が行えます。 f:id:tk3118:20200403195913p:plain

【Unity】リフレクションでUnityのBuildAndRunを呼び出す

概要

以前Unityで自前のビルド処理を書かなければならないことがあり、 その際は、自前でビルド後のアプリケーション実行処理(BuildAndRunのRunの部分)も書いていたのですが、 そもそもリフレクションで良くねという話だったので、そのメモです...

環境

  • Unity2018.2.21f1

実装サンプル(C#)

[MenuItem("ReflectionTest/BuildAndRun")]
public static void BuildAndRun() 
{   

    // Unityバージョンによってメソッド名は変わる可能性があります...
    var reflectionMethodName = "CallBuildMethods";
    var reflectionFlags =  BindingFlags.NonPublic | BindingFlags.Static;

    var buildAndRun = typeof(BuildPlayerWindow).GetMethod(reflectionMethodName, reflectionFlags);

    if(buildAndRun != null){

        // UnityEngine.Objectとの間違いに注意.
        buildAndRun.Invoke(null, new System.Object[]{ true, BuildOptions.AutoRunPlayer | BuildOptions.StrictMode });
    }
}

参考資料