gulp --production laravel elixir 在 webfonts 上失败

gulp --production laravel elixir fails on webfonts

我正在使用 Laravel 5.3 长生不老药来混合资产,我的 js 应用程序通常在 angular 中。 Webpack 是它的后盾。所有 运行s,文件编译成单个 app.js ,甚至我的 css 都在那里。我使用 bootstrap 为应用程序设置皮肤。但是当我 运行 gulp --production 它失败是因为 parsing/uglyfing webfont.

Error: Unexpected token: operator (<)',
  fileName: '/home/user/www/laravel/89889688147bd7575d6327160d64e760.svg',
  lineNumber: 1,
  stack: 'Error\n    at new JS_Parse_Error (eval at <anonymous> (/home/arek/www/laravel/node_modules/gulp-uglify/node_modules/uglify-js/tools/node.js:28:1), <anonymous>:1534:18)\n 

我的 gulpfile 很简单:

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

elixir(mix => {
    mix.webpack('app.js')
    .browserSync({
        'proxy': 'http://localhost:8000'
    })
    ;
});

在我的 app.js 中,我只导入了 bootstrap 的 css (当然我使用 css webpack 加载器)。

import 'bootstrap/dist/css/bootstrap.css';

import angular from 'angular';
import uirouter from 'angular-ui-router';

import routing from './app.config';
import login from './features/login';

angular.module('app', [uirouter, login]).
config(routing);

你在使用新的 elixir 或 webpack 时遇到过类似的问题吗?也许我缺少一些配置?

看来,使用 css 中的路径是问题所在。 https://github.com/webpack/webpack/issues/597解释了很多。现在我的资产加载器(测试变量)看起来像

test: /\.woff($|\?)|\.woff2($|\?)|\.ttf($|\?)|\.eot($|\?)|\.svg($|\?)/,

而不是

test: /\.(svg|woff|woff2|ttf|eot)$/,