是否有命令或技術來「具體化」符號連結? (複製文件,使它們不再是符號連結)

是否有命令或技術來「具體化」符號連結? (複製文件,使它們不再是符號連結)

我在用著勒納管理多包單一儲存庫。

它在我的開發環境中運作良好,我可以在其中處理多個相互依賴的套件,並且程式碼可以繼續工作。

但是,我在構建此生產程式碼時遇到了一些麻煩。

本質上,問題是,當我編譯程式碼時,我會得到一些帶有以下內容的 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/

相關內容