私は使用していますレルナマルチパッケージのモノレポを管理します。
これは私の開発環境ではうまく機能し、相互に依存する複数のパッケージで作業してもコードは動作し続けます。
しかし、このコードを本番環境向けにビルドする際に問題が発生しています。
本質的には、問題は、コードをコンパイルすると、いくつかのcjsモジュールが
require('some-dependency')
依存関係はnode_modules
フォルダー内にシンボリックリンクとして存在するため、開発環境で動作します。
ただし、node_modules を docker イメージにコピーしたい場合、Docker はシンボリックリンクを無視するため、これは機能しません。
私がやりたいのは、node_modules
シンボリック リンクを検査するコマンドを用意し、シンボリック リンクが存在する場合は、すべてのファイルを具体的なファイルにコピーすることです。
これは可能ですか?用語は何ですか?
答え1
cp コマンドに逆参照オプションを追加できます。逆参照により、cp は simlink ではなくリンクされたファイルをコピーします。
cp --dereference --recursive node_modules/* dest_dir/
あるいは:
cp -L -r node_modules/* dest_dir/