我在用著勒納管理多包單一儲存庫。
它在我的開發環境中運作良好,我可以在其中處理多個相互依賴的套件,並且程式碼可以繼續工作。
但是,我在構建此生產程式碼時遇到了一些麻煩。
本質上,問題是,當我編譯程式碼時,我會得到一些帶有以下內容的 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/