这是一个间歇性问题。也就是说,我可以重复执行相同的构建命令n次,而无需进行任何更改,有时它可以正常工作,有时(〜30%)似乎没有任何原因会失败。我已经忍受了几个月,但是非常烦人。

我正在使用node(v0.10.35)和browserify(v6.3.4)和brfs(v1.2.0)在我的JavaScript中 bundle 一些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。我的任务很简单。
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版本稍有不同,甚至不同的OS也都遇到相同的问题。

更新:它也失败,只是带有相同消息的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'));

最佳答案

我通过类似的设置遇到了这个问题(不过,使用reactify进行转换;它只是在错误消息中提供了“Unterminated string constant”,而未指定js文件)。原来我在json文件中有语法错误(字符串文字内的流水线)。

关于javascript - 间歇性的Browserify捆绑包故障(可能是BRF),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29462510/

10-11 22:22