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;
}
我的项目基于 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;
}