Windows 上的 Rake 任务错误:没有那个文件或目录

Rake task error on Windows: No such file or directory

我正在尝试 运行 我的计算机上的 Rake 任务 运行ning Windows 但我遇到了文件路径问题。 rakefile 最初是由用户 运行ning Mac 和 OSX.

编写的
def compile
  `cp -r app/assets/images dist/`
  ...
end

运行 上面的任务给我一个错误: Errno::ENOENT: 没有那个文件或目录 - cp -r app/assets/images dist/

文件夹在那里,以下命令在终端中有效:

cp -r .\app\assets\images dist\

但是,将 rake 文件中的命令更改为以下命令不起作用:

`cp -r .\app\assets\images dist\`

有什么方法可以 运行 我的 Windows 机器上的原始 rakefile 吗?那将是最好的。如果那不可能,我如何更新 rakefile 使其工作?

您必须修改 Rakefile。主要问题是 cp 是一个 UNIX 命令,而 Windows 使用 copy / xcopy。我不是 Windows 专家,但我相信 xcopy /E 适用于递归复制。

我相信您可以通过 运行:

验证 Ruby 将验证文件路径
RUBY_PLATFORM
# => "x64-mingw32" I'm on Windows too :(

File.exists? File.join('app', 'views', 'submissions.erb')
# => true
File.exists? 'app/views/submissions.erb' 
# => true
File.exists? 'app\views\submissions.erb' 
# => true
File.exists? 'app\views\submissions.erb'
# => true

IMO 的最佳解决方案是使用 FileUtils:

require 'fileutils'

FileUtils.cp_r('app/assets/images', 'dist/')