首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSMin错误输出

JSMin错误输出
EN

Stack Overflow用户
提问于 2014-12-09 16:45:20
回答 1查看 179关注 0票数 1

当运行下面的gulp任务时,我从JSmin得到以下错误消息:

代码语言:javascript
复制
/var/www/html/a/node_modules/gulp-jsmin/node_modules/jsmin-sourcemap/node_modules/jsmin2/lib/jsmin.c.index.js:40
          stream.write(str);
                 ^
TypeError: Object function (err) {
          // Add the error to output
          options.error += err;
        } has no method 'write'
    at fputs (/var/www/html/a/node_modules/gulp-jsmin/node_modules/jsmin-sourcemap/node_modules/jsmin2/lib/jsmin.c.index.js:40:18)
    at error (/var/www/html/a/node_modules/gulp-jsmin/node_modules/jsmin-sourcemap/node_modules/jsmin2/lib/jsmin.c.index.js:89:9)
    at action (/var/www/html/a/node_modules/gulp-jsmin/node_modules/jsmin-sourcemap/node_modules/jsmin2/lib/jsmin.c.index.js:218:25)
    at jsmin (/var/www/html/a/node_modules/gulp-jsmin/node_modules/jsmin-sourcemap/node_modules/jsmin2/lib/jsmin.c.index.js:352:21)
    at main (/var/www/html/a/node_modules/gulp-jsmin/node_modules/jsmin-sourcemap/node_modules/jsmin2/lib/jsmin.c.index.js:368:9)
    at jsminFn (/var/www/html/a/node_modules/gulp-jsmin/node_modules/jsmin-sourcemap/node_modules/jsmin2/lib/jsmin.c.index.js:373:12)
    at jsmin (/var/www/html/a/node_modules/gulp-jsmin/node_modules/jsmin-sourcemap/node_modules/jsmin2/lib/jsmin.js:82:3)
    at Object.Collector.addFile (/var/www/html/a/node_modules/gulp-jsmin/node_modules/jsmin-sourcemap/lib/jsmin.sourcemap.js:24:19)
    at Array.forEach (native)
    at module.exports (/var/www/html/a/node_modules/gulp-jsmin/node_modules/jsmin-sourcemap/lib/jsmin.sourcemap.js:136:9)

/**压缩任务**/

代码语言:javascript
复制
gulp.task('js', function() {
    gulp.src('app/assets/javascripts/**/*.js')
        .pipe(changed('public/assets/javascripts/min'))
        .pipe(jsmin())
        .pipe(rename({suffix: '.min'}))
        .pipe(gulp.dest('public/assets/javascripts/min'));

    gulp.src([  'public/assets/javascripts/min/bootstrap.min.js','public/assets/javascripts/min/jquery.flexslider.min.js','public/assets/javascripts/min/waypoints.min.min.js',
            'public/assets/javascripts/min/modernizr.custom.min.js','public/assets/javascripts/min/jquery.stapel.min.js', 'public/assets/javascripts/min/jquery.socialist.min.js',
            'public/assets/javascripts/min/enscroll.min.min.js','public/assets/javascripts/min/jquery-ui-1.8.2.custom.min.min.js','public/assets/javascripts/min/pirobox_extended_min.min.js',
            'public/assets/javascripts/min/jquery.masonry.min.min.js', 'public/assets/javascripts/min/functions.min.js'])
        .pipe(concat('application.js'))
        .pipe(gulp.dest('public/assets/javascripts/min/'));
});

有没有人能帮我弄清楚是怎么回事?

EN

回答 1

Stack Overflow用户

发布于 2014-12-09 20:18:17

简短的答案是,自7d5f486f46b453d738057e97060e4805846bf4af修订版以来,node-jsmin2模块中引入了一个错误。

在那个版本中,fputs被修改为调用stream.write(str)而不是stream(str)stdout被修改为包含writewriteFromIndex方法的对象-但stderr没有类似的修改。(该提交意味着stdoutstderr的默认值,即console.logconsole.error,不再适用。在该提交的TODO.md更改中已经提到了这一点。)

这里有一个快速的“修复”(我考虑发送一个拉取请求,但决定不这样做):

代码语言:javascript
复制
diff --git a/lib/jsmin.js b/lib/jsmin.js
index 439957b..c6f9331 100644
--- a/lib/jsmin.js
+++ b/lib/jsmin.js
@@ -68,9 +68,11 @@ function jsmin(input) {
             output += char;
           }
         },
-        'stderr': function (err) {
-          // Add the error to output
-          options.error += err;
+        'stderr': {
+          'write': function (err) {
+            // Add the error to output
+            options.error += err;
+          }
         },
         'exit': function (code) {
           // Throw the collective error
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27374627

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档