1

我有一个使用 gulp 工作流的现有工作项目。一切运行良好。我的 gulp 使用这个:

  • 浏览器同步@2.0.1
  • gulp@3.8.11
  • gulp-angular-templatecache@1.5.0
  • gulp-autoprefixer@2.1.0
  • gulp-concat@2.4.3
  • gulp-less@2.0.3
  • gulp-minify-css@0.3.13
  • gulp-minify-html@0.1.8
  • gulp-rename@1.2.0
  • gulp-sourcemaps@1.3.0
  • gulp-uglify@1.1.0
  • gulp-util@3.0.3
  • gulp-watch@4.1.1
  • 吞咽包装@0.10.1
  • 极简主义@1.1.0

所以,我决定在我的团队的新项目中使用它。我复制到新的项目文件夹并gulpfile.js运行。一切都照常下载。但是当我尝试运行我的 gulp 任务时,我遇到了这个错误:package.jsonnpm install

TypeError: Object #<lib$es6$promise$promise$$Promise> has no method 'done'
at DestroyableTransform._transform (E:\www\myproject\node_modules\gulp-less\index.js:68:8)

经过一番测试,我发现问题实际上是由 引起的gulp-wrap,可以通过以下方式解决:

  1. gulp-wrap从旧项目复制文件夹并覆盖新项目
  2. 从 gulpfile.js 中注释掉/删除所有gulp-wrap用法以及它的 require()

一开始我以为是新版本问题造成的。所以,我在package.json. 但是运行之后npm install,同样的问题出现了。

所以,当我查看我的 gulpfile 时,只有一个地方使用gulp-wrap.

wrap('(function(){"use strict"; <%= contents %>\n})();')

无论如何我可以为此进行包装而不使用gulp-wrap以避免发生该问题吗?

4

1 回答 1

0

经过一些研究,我发现 gulp-insert ( https://github.com/rschmukler/gulp-insert ) 也可以完成这项工作,到目前为止我还没有遇到 gulp-wrap 面临的问题。

可以这样做:

.pipe(insert.wrap('(function(){"use strict";', '\n})();'))
于 2015-05-16T01:33:28.267 回答