LoginSignup
0
0

More than 5 years have passed since last update.

node-redで、フローをクリップボードへ書き出す際の注意点 (Terminalの一行最大文字数制限)

Last updated at Posted at 2018-11-18

最初に結論

node-redでフローを書き出す際は、
- ファイルへの書き出しが一番無難
- やむを得ずクリップボードを使う際はインデントのあるJSONフォーマットにする

以下詳細

LINEのメッセージをGoogle Homeで読み上げる(機能強化版) のコメントでsekinetpさんに指摘されたのですが、gitにあげているnode-redのフローのjsonが4096バイトで切れている問題がありました。

フローはクリップボードに書き出して、ターミナルでcat - > fileで保存していました。使ったターミナルソフトが悪かったのかなと思い、別ので試しても同じです。ターミナル上では正常にペーストされているように見えても、ls -lすると4096バイト。
4096バイト以上で出力されているフローも1件あり、そのフローはインデントありJSONで書き出されていました。問題のあるフローはインデントなしJSONです。

調べてみると以下の記事が見つかりました: How to read over 4k input without new lines on a terminal?。Linux terminalのcooked mode時の一行の最大長制限が4kバイトとのこと。ちなみにMacOSだと1kだそうです。
インデントなしでフローを書き出すと全て1行で出力されるため、この制限に引っかかっていました。

しかし、20年近くLinux使ってきてて今頃この仕様に気づくとは... 今までホントに大丈夫だったのか心配です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0