npm パッケージでの package-lock.json の扱い

npm パッケージで package-lock.json をどのように扱えばいいのかわからなかったのでメモ。


最近の npm では npm install した際に、package-lock.json が生成されます。 この pacakge-lock.json を見るとオプション*1によっては、以下のように package-lock.json に記述されるライブラリのバージョンが固定化されます。

// サンプル
    "agent-base": {
      "version": "4.2.0",
      "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.0.tgz",
      "integrity": "sha512-c+R/U5X+2zz2+UCrCFv6odQzJdoqI+YecuhnAJLa1zYaMc13zPfwMwZrr91Pd1DYNo/yPRbiM4WVf9whgwFsIg==",
      "requires": {
        "es6-promisify": "5.0.0"
      }

ただし、普段自分は gulp-nightwatch というライブラリをメンテナンスしており、 上記の様な package-lock.json を含んだ npm パッケージをリリースすると、「パッケージ利用者の人が固定化されたライブラリしか利用できず、プロジェクトで利用しているパッケージによっては依存関係が解決できないのでは?」と思い、大丈夫なのかどうか調べてみました。

結論から書くと、package-lock.json のバージョンを固定化しても問題なさそうです。 というのも、 package-lock.json は npm へ pulish ( npm へのリリース ) の際には無視されるそうです。

npm-package-lock.json | npm Documentation

One key detail about package-lock.json is that it cannot be published, and it will be ignored if found in any place other than the toplevel package. It shares a format with npm-shrinkwrap.json, which is essentially the same file, but allows publication. This is not recommended unless deploying a CLI tool or otherwise using the publication process for producing production packages.

そのため、(npm パッケージの)リポジトリに含まれていても特に問題はなく、 package-lock.json はライブラリの開発の際に利用されるもののようです。 なるほど。なるほど。

*1:save-exact

鯛めし

f:id:tatsuyafw:20181104163938j:plain

調理時間: 約一時間ほど

以下のサイトを参考に作りました

鯛めし レシピ 栗原 はるみさん|【みんなのきょうの料理】おいしいレシピや献立を探そう

鯛は近くの鮮魚店で買いました。

感想

  • 少し味が薄いが美味しい
  • グリルで焼いた後、取り出す際に少し身が崩れてしまった。ちょっと焼きすぎたかも
  • 鯛を手に入れるのが一番大変だったかも 😅

lita-amesh という東京アメッシュの画像を表示する lita plugin を作りました

「チャットルーム内で 東京アメッシュ の画像を見たいなー」と思い、lita 向けのプラグインを作りました

様子

f:id:tatsuyafw:20180904205915p:plain

東京アメッシュのサイトを直接見れば事足りることですが、、、 gem を作ったことがなかったので練習がてら。。 現在のところ Slack しか対応していませんが、ニーズがあれば(?)他のチャットサービスに対応したいと思います。

esa-edit-from-hereという esa 向けの Chrome Extension を作りました

esa 向けの Chrome Extension を作成&公開しました。インストールは以下のURLからできます。*1

esa edit from here - Chrome ウェブストア

どんなもの?

どうして作ったの?

  • esa で長文の文書を作成した際に、「途中から編集したいなぁ」と思うことがあり
  • これでドキュメントを作る気持ちが +5 されました

作った感想

  • Chrome Extension アイコンを設定していないなどだいぶ適当感がありますが、自分の中で満足してしまったためあまり更新しないかも…
  • どれくらい本家のサイトに依存していいのか迷いました。。
    • 本当は JS や CSSなどもまるっと Extension に含めるべきだと思いますが、ちょっとのことのために大きなファイルを突っ込むのはどうなのかと思ってしまい、、
    • かと言って一部のアイコンだけを抽出するのも面倒になり手を抜きました。。
  • さっさと公開して、誰かの役に立てればいいなと
  • この拡張に限った話ではないですが Chrome Extension で使っているライブラリ(jQueryなど)を閲覧しているサイトでも利用している場合、バージョンの違いにより動作がおかしくならないのかな、と少し思ったり。

*1:インストールできるはずですが、これを書いているのが Extension を公開した直後のせいか、リンクを踏むとたまに 404 Not Found になります

Vimユーザの方でescを使っている方はどれくらいいるのかな

僕は色々なエディタを試してみるのが好きで、現在も EmacsVimAtom、CotEditor など色々なエディタを日常的に使うのですが、昔から Vim に対する一つの疑問があります(というより Vim ユーザの方ですが)。それは Vim ユーザの方は「どれくらい esc キーをつかっているのか」という疑問です。

Vim はいいエディタだと思いますが、ノーマルモードに戻る際に esc キーはキーボードレイアウトとして遠いので辛いなと。。。esc キーはキーボードの左上についていることが多いと思いますが、ホームポジションを崩して左手の中指や薬指で押すのはあまり効率的?ではないと思っています。

esc キーの代わりに Ctrl + [ キーを使う、ということも聞きますが、[ キーも(日本語キーボードのため)右手の小指の位置にあり、正直押しやすい場所に無いなと思っています。と、遠くないでしょうか。。?

結局、僕は esc キーの代わりに Ctrl + C キーを使っています。esc キーと Ctrl + C の意味は違うものだと思いますが、まぁ、困ったことがないのでいいかなと。ちなみに、色々なアプリで esc はキャンセルとして動くのでちょくちょく使いますが、これは別の話。

ローストビーフ(ヨーグルティアを使って)

ヨーグルティアを買ったのでローストビーフを作ってみました

Amazon CAPTCHA

f:id:tatsuyafw:20170730205747j:plain

調理時間: 10分 + 3時間低温調理

感想

  • 63℃ + 3 時間、ヨーグルティアで加熱しましたが少し時間が長かったのか、肉の中まで硬さがでてしまったかも
  • 次は 62℃ + 3時間で挑戦したい
  • そのままでも美味しいけど、タレをあわせて作ったほうが良かったかも ^^;

ラタトゥイユ

f:id:tatsuyafw:20170729220809j:plain

料理時間: 30分

感想

  • トマトを煮込むとなんにでも合う、気がする

改善点

  • ズッキーニが少し芯が残っていた

参考にしたサイト