Gulp-wrap Alternative

时间:2015-04-27 10:05:45

标签: node.js gulp gulp-uglify gulp-wrap

我有一个现有的工作项目与gulp工作流程。一切都运行得很好。我一口气用这个:

  • browser-sync@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
  • gulp-wrap@0.10.1
  • minimist@1.1.0

所以,我决定将它用于我的团队的新项目。我将gulpfile.jspackage.json复制到新项目文件夹并运行npm install。一切都像往常一样下载。但是当我尝试运行我的gulp任务时,我遇到了这个错误:

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()
  3. 起初我认为这是由新版本问题引起的。所以,我在package.json中专门指定了版本。但是在运行npm install之后,会出现同样的问题。

    因此,当我查看我的gulpfile时,只有一个地方使用gulp-wrap

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

    我是否可以在不使用gulp-wrap的情况下为此进行包装,以避免出现此问题?

1 个答案:

答案 0 :(得分:0)

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

可以这样做:

.pipe(insert.wrap('(function(){"use strict";', '\n})();'))