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/')
我正在尝试 运行 我的计算机上的 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/')