这是一个间歇性的问题。也就是说,我可以重复相同的构建命令n次而不会改变任何东西,有时它会工作,有时(~30%)它会失败,看似没有原因。我已经和它生活了几个月了,但它非常烦人。
我正在使用节点(v0.10.35)和browserify(v6.3.4)和brfs(v1.2.0)在我的javascript中捆绑一些html。间歇性地,构建失败了:
events.js:72
throw er; // Unhandled 'error' event
^
SyntaxError: Unterminated string constant (17:4) while parsing file: blah.js
at raise (./node_modules/brfs/node_modules/static-module/node_modules/falafel/node_modules/acorn/acorn.js:333:15)
at readString (./node_modules/brfs/node_modules/static-module/node_modules/falafel/node_modules/acorn/acorn.js:1073:11)
at getTokenFromCode (./node_modules/brfs/node_modules/static-module/node_modules/falafel/node_modules/acorn/acorn.js:854:14)
at readToken (./httpd/node_modules/brfs/node_modules/static-module/node_modules/falafel/node_modules/acorn/acorn.js:902:15)
at next (./node_modules/brfs/node_modules/static-module/node_modules/falafel/node_modules/acorn/acorn.js:1232:5)
at eat (./node_modules/brfs/node_modules/static-module/node_modules/falafel/node_modules/acorn/acorn.js:1335:7)
at expect (./node_modules/brfs/node_modules/static-module/node_modules/falafel/node_modules/acorn/acorn.js:1360:5)
at parseExprList (./node_modules/brfs/node_modules/static-module/node_modules/falafel/node_modules/acorn/acorn.js:2443:9)
at parseSubscripts (./node_modules/brfs/node_modules/static-module/node_modules/falafel/node_modules/acorn/acorn.js:2032:24)
at parseSubscripts (./node_modules/brfs/node_modules/static-module/node_modules/falafel/node_modules/acorn/acorn.js:2021:14)
at parseExprSubscripts (./node_modules/brfs/node_modules/static-module/node_modules/falafel/node_modules/acorn/acorn.js:2012:12)
at parseMaybeUnary (./node_modules/brfs/node_modules/static-module/node_modules/falafel/node_modules/acorn/acorn.js:1995:16)
这是不同的行号,但每次构建失败时,都会指向
fs.readFileSync(
我认为这不重要,但我正在使用gulp v3.8.8。我的gulp任务非常简单。
var gulp = require('gulp');
var browserify = require('browserify');
var source = require('vinyl-source-stream');
gulp.task('build', function(cb) {
return browserify(app.src, {
fullPaths: true,
transform: ['brfs'],
debug: true
}).bundle().pipe(source(app.name)).pipe(gulp.dest(app.dest));
});
同一个项目中的其他人,节点和gulp版本略有不同,甚至不同的操作系统也遇到了同样的问题。
更新:仅使用相同消息的browserify + brfs(大多数当前版本)也失败了。我确信这是brfs的一个问题,因为如果我省略转换它似乎没有失败。
var browserify = require('browserify');
var fs = require('fs');
var b = browserify('blah.js');
b.transform('brfs');
b.bundle().pipe(fs.createWriteStream('out.js'));
答案 0 :(得分:1)
我通过类似的设置得到了这个问题(使用reactify进行转换;它只是给了我"未终止的字符串常量"在错误消息中并没有指定js文件) 。原来我在json文件中有一个语法错误(字符串文字中的一个流浪换行符)...