在 package.json 中使用 xcopy

use xcopy in package.json

我有一个反应应用程序和一个快速服务器。我通过快速服务器将 React 应用程序作为静态页面提供服务。每次构建反应项目时,我都想将构建文件夹从反应应用程序复制到服务器。我正在使用 xcopy,但它不起作用。

"scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build && xcopy C:\Users\gevi\Scheduler\client\build C:\Users\gevi\Scheduler\Server\build /E/H/C/I",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  }, 

您的示例是 not valid JSON,因此请考虑进行以下更改:

  • 转义反斜杠,即将所有 \ 更改为 \
  • 将路径名包含在 JSON 转义双引号中(即 \"...\")。

基本上,重新定义您的 build 脚本如下:

"scripts": {
  ...
  "build": "react-scripts build && xcopy \"C:\Users\gevi\Scheduler\client\build\" \"C:\Users\gevi\Scheduler\Server\build\" /E/H/C/I",
  ...
}

为清楚起见,以下示例使用抑扬符 (^) 字符来指示对您在问题中提供的 build 脚本(如上所述)所做的每个额外更改:

"build": "react-scripts build && xcopy \"C:\Users\gevi\Scheduler\client\build\" \"C:\Users\gevi\Scheduler\Server\build\" /E/H/C/I",
                                       ^^  ^      ^     ^          ^       ^      ^^ ^^  ^      ^     ^          ^       ^      ^^

如果需要更改xcopy选项,请参考我的回答。例如

  • 您可能需要添加 /Q 选项以在复制时不在控制台中显示文件名。

  • 或者,可以在目标路径末尾添加一个转义反斜杠,以确保在服务器上尚不存在 build 文件夹时创建该文件夹。如果这是要求,则将上一个示例中的目标路径更改为:

    \"C:\Users\gevi\Scheduler\Server\build\\"
                                               ^^