复制 React 应用程序文件夹不起作用?

Duplicating a React app folder does not work?

(顺便说一下,这是在 Mac 上。似乎 Mac 上的 cp -r 是 "historical",应该用 cp -R 代替) .

我尝试了以下方法:

mkdir TryContext
cd TryContext
npx create-react-app my-app
cd my-app

然后我制作了一个可以运行的应用程序,npm start 能够启动服务器并 运行 它。

但是如果我想制作这个应用程序的第 2 版,首先要从克隆文件夹开始:

cd ..
cp -r my-app my-app-02

将所有内容复制到 my-app-02,并将 cd 复制到该文件夹​​并执行 npm start,它会出错,显示

> my-app@0.1.0 start /Users/username/code/TryContext/my-app-02
> react-scripts start

internal/modules/cjs/loader.js:800
    throw err;
    ^

Error: Cannot find module '../scripts/start'

我尝试了不同的方法,先是npm rebuild,然后是npm start,都成功了。但是我想如果你复制一个目录 "as is",然后使用它,npm start 应该启动服务器而不需要做任何事情?为什么会这样,除了 npm rebuild 之外还有什么方法可以解决这个问题?

TL;RD: 当您使用 cp -r 进行复制时,它并没有真正保留符号链接,它只是复制了文件内容。所以 npm start 在这种特殊情况下找不到必要的符号链接。一种可能的解决方案是在应对时使用 cp -a,这样可以保留符号链接并避免此问题。

模式详细答案是here

:)