npmでサードパーティのパッケージを利用する

  • npmと制限

    hmEdgeJSで利用するnodeと、npmでインストールするモジュールの
    「想定バージョン」「x86 or x64」が一致すると利用することが出来ます。

    • JavaScriptだけで構成されているモジュールは概ね動作

      通常であれば、JavaScriptで構成されているモジュールは、nodeの必要バージョンを満たしてさえいれば、利用できることが期待できます。

    • C言語のソースのコンパイルを必要とするネイティブなモジュールは概ねダメ

      一方で、C言語のソースのコンパイルを要するもの(自動コンパイルも含む)は、
      利用出来ないことが多いハズです。

      理由としては、秀丸のデフォルトがx86=32bit版なのに対し、
      node.jsのデフォルト版はx64版ですので、
      x86とx64のビット数が食い違ったり、同じビットであったとしても、nodeのバージョンの食い違いで、
      ABI(アプリケーションバイナリインターフェイス)が一致しないことによる不具合です。

  • npmで、「実行するマクロファイル」「実行する.js」とカレントディレクトリと見立ててパッケージをインストール

  • 利用可能か確認してみる

    mytest.mac
    #NODE = loaddll( hidemarudir + @"\hmEdgeJS" );
    
    #r = dllfuncw( #NODE, "DoFile", currentmacrodirectory + @"\mytest.js" );
    
    freedll(#NODE);
    
    mytest.js
    var to_json = require('xmljson').to_json;
     
    //XML文字列を作成
    var xml = '<myData>' +
                '<tag1>value1</tag1>' +
                '<tag2>value2</tag2>' +
                '<tag3>value3</tag3>' +
              '</myData>';
    
    function display(error, data) {
        console.log(data);
    }
    
    to_json(xml, display);