间歇性浏览器捆绑失败(可能是brfs)

时间:2015-04-05 21:37:34

标签: javascript node.js browserify

这是一个间歇性的问题。也就是说,我可以重复相同的构建命令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'));

1 个答案:

答案 0 :(得分:1)

我通过类似的设置得到了这个问题(使用reactify进行转换;它只是给了我"未终止的字符串常量"在错误消息中并没有指定js文件) 。原来我在json文件中有一个语法错误(字符串文字中的一个流浪换行符)...