0

默认 gulp-load-plugins 删除所有插件名称gulp-

但是如何让 gulp-load-plugins 默认替换所有以gulp-to开头的插件名称g

例如

gulp-sass

other-gulp-plugin

重命名为

gSass

other-gulp-plugin
4

1 回答 1

0

gulp-load-plugins 选项

模式:['gulp -','gulp. ', '@ /gulp{-,.} '], // 要搜索的 glob

replaceString: /^gulp(-|.)/, // 将模块添加到上下文时要从模块名称中删除什么

renameFn: function (name) { ... }, // 处理插件重命名的函数(默认有效)

所以你需要这样的东西(即未经测试)

var plugins = require("gulp-load-plugins")({
  renameFn: function(name) {

    //  if only it were as easy as the below : the simple case
    //  return name.replace(/^@*gulp(-|.)(.)/, 'g\U$2\E');

   // but try this 
    return name.replace(/^@*gulp(-|.)(.)/, function (match, p1, p2) {
       return "g" + p2.toUpperCase(); })
   // p2 is the second capture group
   }
});

简单案例:

  1. /@*gulp(-|.) :查找模式@gulp-、@gulp.、gulp- 和 gulp。
  2. (.) : 捕获下一个字符
  3. g\U$2\E :仅将第二个捕获组 (.) 替换为
  4. 'g' 后跟大写 \U 第二个捕获组 $2 和
  5. 第二个捕获组 \E 的结束大写 [在您的情况下不需要,因为您只需要一个字符]。

我留下了简单的案例以供指导,但您可能需要 node/gulp 中更长的未注释版本。

于 2017-11-07T21:54:28.713 回答