Uncaught SyntaxError: Invalid or unexpected token in file compiled by Browserify

Uncaught SyntaxError: Invalid or unexpected token in file compiled by Browserify

我的项目基于 Laravel 并使用 Laravel Elixir 来编译和缩小客户端代码(用 ECMAScript 6 编写)。

我注意到,如果我对客户端代码进行任何更改,然后使用 gulp 重新编译所有内容并重新加载页面,我会在 Chrome 中收到以下错误:

Uncaught SyntaxError: Invalid or unexpected token

Failed to parse SourceMap: http://192.168.99.100/js/app.js.map

如果我检查 app.js,我就能明白我遇到这个问题的原因:

每个红点都是字符\u0

之后我在我的 IDE 中检查了同一个文件,但在它的末尾没有这样的字符。

如果我还原我的更改,然后使用 gulp 重新编译,一切都会重新开始。

我的gulpfile.js:

var elixir = require('laravel-elixir');
require('laravel-elixir-vueify');

// Enable full sourcemaps with browserify. Disable in production.
elixir.config.js.browserify.options.debug = true;

// Disable notifications
process.env.DISABLE_NOTIFIER = true;

elixir(function(mix)
{
    // Compile SASS
    mix.sass('app.scss');

    mix.browserify('app.js');

    mix.browserSync({
        notify : false,
        open: false,        
        proxy : '192.168.99.100',
        reloadDelay: 2000
    });
});

不确定这是否重要,但该应用程序 运行 在共享文件夹内的多个 docker 容器中,由 Mac OS X.[=18= 托管]

原来问题是由Nginx 配置错误引起的。通过查看 this discussion.

,我得到了一个非常有用的提示

在我的例子中,我需要通过更改 default.conf 来禁用 Nginx 中的 sendfile 的使用:

location / {

    # Try to serve the request as a file first, but if it cannot be found
    # try to serve the default index file for a directory that matches the
    # request.
    try_files $uri $uri/ /index.php?$query_string;
    index     index.php index.html index.htm;
    sendfile  off;
}