Laravel Elixir 6在“gulp watch”上获得例外

时间:2016-09-12 13:46:59

标签: javascript laravel compilation gulp laravel-elixir

当我尝试运行gulp watch时,我收到此错误:

stream.js:74
      throw er; // Unhandled stream error in pipe.
      ^

Error: ENOENT: no such file or directory, stat 'XXXX\public\build\css\client-18724fe72d.css'
    at Error (native)

我试图将client.scss文件留空,错误消失了。我发现当我在client.scss

中有这些行时,错误有时会出现
// Pages
@import 'pages/client/auth';
@import 'pages/client/normals';
@import 'pages/client/orders';

我已经检查了它们中的每一个,并且语法或类似的东西没有任何问题。更重要的是,当我运行gulp时,它可以正常运行。

这是我的gulpfile.js:

const elixir = require('laravel-elixir');

elixir(mix => {
    mix
        .sass('app.scss')
        .sass('client.scss', 'public/css/client.css')
        .sass('panel.scss', 'public/css/panel.css')
        .copy('resources/assets/fonts', 'public/build/fonts')
        .copy('resources/assets/images', 'public/build/images')
        .webpack('app.js')
        .webpack('panel.js')
        .version(['css/app.css', 'css/client.css', 'css/panel.css', 'js/app.js', 'js/panel.js'])
});

这是文件结构:

Structure

我有什么问题吗?

2 个答案:

答案 0 :(得分:0)

正如您在gulpfile.js中看到的,我将文件/文件夹复制到/build文件夹,这可能是Laravel Elixir 6上的一个问题,当我现在考虑它时,这听起来很糟糕太

所以我解决这个问题的方法是:

  • gulpfile.js删除这些行:

    .copy('resources/assets/fonts', 'public/build/fonts')
    .copy('resources/assets/images', 'public/build/images')
    
  • fontsimages个文件夹放入storage/app/public

  • 正在投放php artisan storage:link (storage:link artisan command)
  • 将资源文件中的路径更改为新目录
  • 正在运行gulp

它解决了我的问题。现在我可以再次gulp watch

归功于ejdelmonico on laracasts

答案 1 :(得分:0)

在这里扔我的两分钱。我有同样的问题,一旦我停止使用起始/相对路径选项就会消失,并使用完全相对路径(相对于/资源)。

所以而不是:

mix.styles([
    'vendors/jquery-steps/demo/css/jquery.steps.css',
    'vendors/pace/pace-minimal.css',
    'vendors/bootstrap/dist/css/bootstrap.min.css',
    '../node_modules/sweetalert2/dist/sweetalert2.min.css',
], 'public/css/vendors.css', 'public');

这很有效,gulp watch又跑了一次:

mix.styles([
    '../../../public/vendors/jquery-steps/demo/css/jquery.steps.css',
    '../../../public/vendors/pace/pace-minimal.css',
    '../../../public/vendors/bootstrap/dist/css/bootstrap.min.css',
    '../../../node_modules/sweetalert2/dist/sweetalert2.min.css',
], 'public/css/vendors.css');

它不漂亮,但它确实有效。