我的项目基于Laravel并使用Laravel Elixir来编译和缩小客户端代码(用ECMAScript 6编写)。
我注意到如果我对客户端代码进行了任何更改,然后使用gulp
再次编译所有内容并重新加载页面我在Chrome中收到以下错误:
未捕获的SyntaxError:无效或意外的令牌
无法解析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
});
});
不确定是否重要,但应用程序在由Mac OS X托管的共享文件夹内的多个docker容器中运行。
答案 0 :(得分:10)
原来这个问题是由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;
}