当我运行“吞咽”的时候,我得到了下面的信息。看起来我有一个CLI和本地版本的混合,不是真的确定如何解决这个问题。
cabox@box-codeanywhere:~/workspace/apps/web-ui$ gulp -v
[22:44:23] CLI version 2.0.1
[22:44:23] Local version 4.0.0
cabox@box-codeanywhere:~/workspace/apps/web-ui$
cabox@box-codeanywhere:~/workspace/apps/web-ui$
cabox@box-codeanywhere:~/workspace/apps/web-ui$ gulp
[22:44:28] Using gulpfile ~/workspace/apps/web-ui/gulpfile.js
[22:44:28] Starting 'default'...
[22:44:28] 'default' errored after 5.41 ms
[22:44:28] TypeError: gulp.hasTask is not a function
at /home/cabox/workspace/apps/web-ui/node_modules/run-sequence/index.js:23:22
at Array.forEach (<anonymous>)
at verifyTaskSets (/home/cabox/workspace/apps/web-ui/node_modules/run-sequence/index.js:17:11)
at runSequence (/home/cabox/workspace/apps/web-ui/node_modules/run-sequence/index.js:130:2)
at /home/cabox/workspace/apps/web-ui/gulpfile.js:187:5
at taskWrapper (/home/cabox/workspace/apps/web-ui/node_modules/undertaker/lib/set-task.js:13:15)
at bound (domain.js:301:14)
at runBound (domain.js:314:12)
at asyncRunner (/home/cabox/workspace/apps/web-ui/node_modules/async-done/index.js:55:18)
at _combinedTickCallback (internal/process/next_tick.js:131:7)
cabox@box-codeanywhere:~/workspace/apps/web-ui$ ^C发布于 2018-05-02 18:35:49
run-sequence package的v4有一些突破性的变化,这给Gulp带来了一些问题。
因为我没有你的gulpfile.js,到目前为止我能说的就是尝试使用Gulp4的gulp.series和gulp.parallel来处理你的吞吐任务,而不是运行序列。
在任务的函数中,您可能会收到类似“task1,'task2‘may’t be completed‘之类的错误,接受已完成的回调,并在函数结束时调用任务中的回调
示例:
gulp.task('task1', gulp.series('task1-1', function (done) {
// task 1 code here
done();
}));
gulp.task('task2', gulp.series('task2-1', function (done) {
// task 2 code here
done();
}));
// Similarly Tasks 3 and 4 Code here
gulp.task('main', gulp.series('task1', 'task2', 'task3', 'task4', function (done) {
done();
}));发布于 2018-03-13 10:27:14
最重要的是本地版本。由于gulp 4.0.0引入了破坏性的更改,您可以简单地执行我所做的操作-显式地将本地包设置回工作版本:
npm install --save-dev gulp@3.9.1最近这件事咬了我几次,我肯定我还会再来这里的。
注意: gulp 3.9.1的依赖项有许多安全漏洞。您不应该这样做。
发布于 2019-11-11 18:05:21
Saurabh Pati's answer就是答案。顺便说一句,一个快速的解决方法是用gulp4-run-sequence包替换run-sqeuence包。
如果您的项目在本地安装了Gulp,请删除Gulp的本地版本:
yarn remove gulp然后打开package.json并将"run-sequence": "^0.3.6",替换为
"gulp4-run-sequence": "^1.0.0",现在运行
yarn install在Gulpfile.js中,将runSequence = require('run-sequence'),替换为
runSequence = require('gulp4-run-sequence'),然后,你就完成了。:)
https://stackoverflow.com/questions/48513573
复制相似问题