简体   繁体   English

gulp:“TypeError:print不是函数”

[英]gulp : “TypeError: print is not a function”

I am trying to build Semantic-UI with gulp in a directory, but I get having these errors : 我正在尝试在目录中使用gulp构建Semantic-UI,但是我遇到了这些错误:

root@ks4000003:/var/www/mg.guylabbe.ca/web/inc/semantic# gulp build
[10:36:53] Using gulpfile /var/www/clients/client1/web179/web/inc/semantic/gulpfile.js
[10:36:53] Starting 'build'...
Building Semantic
[10:36:53] Starting 'build-javascript'...
Building Javascript
[10:36:54] 'build-javascript' errored after 19 ms
[10:36:54] TypeError: print is not a function
    at Gulp.module.exports (/var/www/clients/client1/web179/web/inc/semantic/tasks/build/javascript.js:64:11)
    at module.exports (/var/www/clients/client1/web179/web/inc/node_modules/orchestrator/lib/runTask.js:34:7)
    at Gulp.Orchestrator._runTask (/var/www/clients/client1/web179/web/inc/node_modules/orchestrator/index.js:273:3)
    at Gulp.Orchestrator._runStep (/var/www/clients/client1/web179/web/inc/node_modules/orchestrator/index.js:214:10)
    at Gulp.Orchestrator.start (/var/www/clients/client1/web179/web/inc/node_modules/orchestrator/index.js:134:8)
    at runNextSet (/var/www/clients/client1/web179/web/inc/node_modules/run-sequence/index.js:124:15)
    at runSequence (/var/www/clients/client1/web179/web/inc/node_modules/run-sequence/index.js:136:2)
    at Gulp.module.exports (/var/www/clients/client1/web179/web/inc/semantic/tasks/build.js:49:3)
    at module.exports (/var/www/clients/client1/web179/web/inc/node_modules/orchestrator/lib/runTask.js:34:7)
    at Gulp.Orchestrator._runTask (/var/www/clients/client1/web179/web/inc/node_modules/orchestrator/index.js:273:3)
[10:36:54] 'build' errored after 21 ms
[10:36:54] TypeError in plugin "run-sequence(build-javascript)"
Message:
    print is not a function
Stack:
TypeError: print is not a function
    at Gulp.module.exports (/var/www/clients/client1/web179/web/inc/semantic/tasks/build/javascript.js:64:11)
    at module.exports (/var/www/clients/client1/web179/web/inc/node_modules/orchestrator/lib/runTask.js:34:7)
    at Gulp.Orchestrator._runTask (/var/www/clients/client1/web179/web/inc/node_modules/orchestrator/index.js:273:3)
    at Gulp.Orchestrator._runStep (/var/www/clients/client1/web179/web/inc/node_modules/orchestrator/index.js:214:10)
    at Gulp.Orchestrator.start (/var/www/clients/client1/web179/web/inc/node_modules/orchestrator/index.js:134:8)
    at runNextSet (/var/www/clients/client1/web179/web/inc/node_modules/run-sequence/index.js:124:15)
    at runSequence (/var/www/clients/client1/web179/web/inc/node_modules/run-sequence/index.js:136:2)
    at Gulp.module.exports (/var/www/clients/client1/web179/web/inc/semantic/tasks/build.js:49:3)
    at module.exports (/var/www/clients/client1/web179/web/inc/node_modules/orchestrator/lib/runTask.js:34:7)
    at Gulp.Orchestrator._runTask (/var/www/clients/client1/web179/web/inc/node_modules/orchestrator/index.js:273:3)

If I check javascript.js file, gulp-print is correctly loaded : 如果我检查javascript.js文件,正确加载gulp-print:

var print = require('gulp-print');

and used (8th line below) : 和使用(第8行):

  // copy source javascript
  gulp.src(source.definitions + '/**/' + globs.components + '.js')
    .pipe(plumber())
    .pipe(flatten())
    .pipe(replace(comments.license.in, comments.license.out))
    .pipe(gulp.dest(output.uncompressed))
    .pipe(gulpif(config.hasPermission, chmod(config.permission)))
    .pipe(print(log.created))
    .pipe(uglify(settings.uglify))
    .pipe(rename(settings.rename.minJS))
    .pipe(gulp.dest(output.compressed))
    .pipe(gulpif(config.hasPermission, chmod(config.permission)))
    .pipe(print(log.created))
    .on('end', function() {
      gulp.start('package compressed js');
      gulp.start('package uncompressed js');
      callback();
    })
  ;

Gulp version : Gulp版本:

[10:42:25] CLI version 3.9.1
[10:42:25] Local version 3.9.1

Does anybody has thoughts on this problem? 有没有人对这个问题有所了解? Thank you! 谢谢!

gulpPrint function is default export, therefore, I need to add a bit of code while importing gulp dependencies. gulpPrint函数是默认导出,因此,我需要在导入gulp依赖项时添加一些代码。 Replace : 替换:

var print        = require('gulp-print');

by : 通过:

var print        = require('gulp-print').default;
// usage
print();

so the gulpPrint(); 所以gulpPrint(); function is renamed print(); 函数重命名为print();

or can also be used in the following way: 或者也可以按以下方式使用:

var print = require('gulp-print');
// usage
print.default()

In case of doubt, dump variable contents with console.log(print), for instance. 如有疑问,请使用console.log(print)转储变量内容。 It will help a lot to understand the logic behind it if you are a beginner like me. 如果你是像我这样的初学者,它将有助于理解它背后的逻辑。

Changes described in the first answer are already in semantic-ui guilpfile.js. 第一个答案中描述的更改已经在semantic-ui guilpfile.js中。 However, I have got the same error while running gulp build . 但是,我在运行gulp build时遇到了同样的错误。

The reason for that was the old version of gulp-print. 原因是旧版本的gulp-print。 After update to the newest version gulp was building fine: 更新到最新版本后gulp构建正常:

npm install gulp-print@5.0.0 --save-dev

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM