LoginSignup
1
0
記事投稿キャンペーン 「2024年!初アウトプットをしよう」

node_modulesをオフラインの環境に持っていくときの備忘録

Posted at

はじめに

npm installyarn installで簡単にモジュールのインストールができますが、インターネットにつながっていることが前提。
とある事情でインターネットに接続できない環境でNode.jsのプロジェクトを開発する機会があり、少し手間取ったので備忘録としておいておきます。

起こった問題

インターネットに接続できる環境でNode.jsのプロジェクトを作成し、node_modulesをzip化しオフライン環境に持っていきました。
オフライン環境で展開し、さあスクリプトを実行しようとしたところエラー(Cannot find module)が発生。

原因

node_modules/.bin配下のシンボリックリンクが切れてしまっていたことが原因。
スクリプト実行時にこの配下のファイルを参照して実行されるのですが、リンク先が見つからずエラーになっていたようです。

zipコマンドを実行した際にシンボリックリンクが実ファイルに置き換わったがゆえ発生した問題。

対策

zipコマンドでzip -r node_modulesとしていたコマンドをzip -ry node_modulesに変更し再度実行。

-yオプションについて

--symlinksの短縮形。シンボリックリンクをたどらずに、シンボリックリンクのまま格納するオプションです。
https://atmarkit.itmedia.co.jp/ait/articles/1607/25/news021.html

シンボリックリンクのまま圧縮し、オフラインで展開し確認したところオンライン環境と同様スクリプトが動きました。

まとめ

文字ばかりで見にくい記事ではありますが、備忘録なのでお許しを…
悩んでた部分がかなり初歩的なところだったので恥ずかしい限りですが、node_modulesの中身が少し理解できました。

1
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
1
0