npm から取得した Node-RED をカスタマイズして起動する(2)
何のため?
Node-RED を Heroku で動作させたかったのだが想定外の動作をしていました。
Node-RED で発生している事象を調査するための環境構築手順を整理した記録です。
セオリーから外れているかもしれませんので、間違っていたらコメントをお願いします。
0. 準備
前の記事で node-red-sample ディレクトリ配下に Node-RED のソースがある状態の環境を構築した。
本記事では、『2.2 カスタマイズ方法(2) : settings.js を userDir に入れておく』 の方法で進めていく。
準備としては、下記コマンドを入力したところから開始となります。
$ mkdir node-red-sample
$ cd node-red-sample
$ npm -y init
$ npm install node-red
$ mkdir data
$ cp ./node_modules/node-red/settings.js ./data/
Node-RED を起動するには下記コマンドを入力する。
$ node ./node_modules/node-red/red.js --userDir ./data
1. npm で入手した Node-RED をローカル管理に変更
前述の通り、Node-RED のコアをデバッグしたいので、ソース管理内に保持する手順を実施する。
1.1. Node-RED をローカルフォルダに移動
改変を加える Node-RED ソースは local_packages ディレクトリに置いて作業を進める事にする。
$ mkdir local_packages
$ mv node_modules/node-red ./local_packages/
$ mv node_modules/@node-red ./local_packages/
# 念のため依存パッケージからnpmjsのnode-redを取り除く
$ npm uninstall node-red
$ rm package-lock.json
1.2. package.json を書き換え
local_packages フォルダのモジュール類を dependencies 記述する。
"dependencies": {
"node-red": "file:local_packages/node-red",
"@node-red/nodes": "file:local_packages/@node-red/nodes",
"@node-red/editor-api": "file:local_packages/@node-red/editor-api",
"@node-red/editor-client": "file:local_packages/@node-red/editor-client",
"@node-red/registry": "file:local_packages/@node-red/registry",
"@node-red/runtime": "file:local_packages/@node-red/runtime",
"@node-red/util": "file:local_packages/@node-red/util"
}
1.3. 書き換えた package.json の内容を node_modules に反映させる
$ npm install
以上で、node_modules 配下には local_packages からのハードリンクが張られる。
Node-RED Core 実体は local_packages にあるものが利用される。
→ コメント追加するなりして、自由にデバッグが出来るので HAPPY !!!
まとめ
本手順で作ったソース一式を git で管理し、herokuで好きなようにデバッグ出来るようになった。
→ その後の調査でherokuとは関係なく発生する問題であることが判明した。
続く...
Author And Source
この問題について(npm から取得した Node-RED をカスタマイズして起動する(2)), 我々は、より多くの情報をここで見つけました https://qiita.com/eurogrve/items/189b850a870087b533f9著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .