是否有“具体化”符号链接的命令或技术?(复制文件,使它们不再是符号链接)

use*_*446 3 symbolic-link

我正在使用lerna来管理多包 monorepo。

它在我的开发环境中运行良好,我可以在其中处理多个相互依赖的包并且代码继续工作。

但是,我在为生产构建此代码时遇到了一些麻烦。

本质上,问题是,当我编译我的代码时,我会得到一些具有

   require('some-dependency')
Run Code Online (Sandbox Code Playgroud)

依赖项将作为node_modules文件夹中的符号链接存在,因此适用于我的开发环境。

但是,如果我想将 node_modules 复制到 docker 映像上,这将不起作用,因为 Docker 只是忽略符号链接。

我想做的是有一个检查node_modules符号链接的命令,如果它们存在,那么只需将所有文件复制为具体文件。

这可能吗?什么是术语?

Eri*_*ntz 7

您可以将取消引用选项添加到 cp 命令。取消引用将导致 cp 复制链接文件而不是 simlink。

cp --dereference --recursive node_modules/* dest_dir/
Run Code Online (Sandbox Code Playgroud)

或者:

cp -L -r node_modules/* dest_dir/
Run Code Online (Sandbox Code Playgroud)