无法使用 Laravel Mix 复制文件夹

Joã*_*rra 3 webpack laravel-5.4 laravel-mix

我有一个使用Laravel 5.4Laravel Mix的项目,我有一个图像文件夹,其中一些图像具有相同的名称但类别不同,因此它们包含在不同的目录中。

所以

resources/
  assets/
    images/
      globalimage.png
      versiona/
        image1.png
        image2.png
      versionb/
        image1.png
        image2.png
Run Code Online (Sandbox Code Playgroud)

我需要的是Laravel Mix 中的复制命令来复制这些文件夹以及其中的任何文件,以便我的公共文件夹具有相同的文件夹结构。

我怎样才能做到这一点?

mix.js('resources/assets/backend/js/main.js', 'public/backend/js')
   .js('resources/assets/frontend/js/main.js', 'public/frontend/js')
   .sass('resources/assets/backend/sass/main.scss', 'public/backend/css')
   .sass('resources/assets/frontend/sass/main.scss', 'public/frontend/css')
   .sourceMaps()
   .copy( 'resources/assets/backend/images/**/*', 'public/backend/images/' )
   .copy( 'resources/assets/frontend/images/**/*', 'public/frontend/images/' )
   .version()
   .disableNotifications();
Run Code Online (Sandbox Code Playgroud)

这是我当前的Mix配置文件,我需要更改的部分是那些复制命令

Joã*_*rra 9

想通了,复制命令有第三个参数,它是一个布尔值,它指定是否展平文件夹结构,如果将其设置为 false,它将完整复制文件夹结构中的所有内容。

所以我的 Mix 配置变成了

   .copy( 'resources/assets/backend/images/', 'public/backend/images/' )
   .copy( 'resources/assets/frontend/images/', 'public/frontend/images/', false )
Run Code Online (Sandbox Code Playgroud)

这工作得很好


Son*_*nal 5

如果您想维护目录结构,还可以使用copyDirectory 函数。

mix.copyDirectory('resources/assets/fonts', 'public/fonts');