javascript - 咕噜声/咕噜声 : Concatenate only necessary JS files?

标签 javascript node.js build-process gulp gulp-concat

我得到了什么

我有一个 gulpfile,它生成 app.min.jslibs.min.js;相当不言自明:

var dev = {
    libs: [
        'bower_components/angular/angular.min.js',
        'bower_components/angular-foundation/mm-foundation-tpls.min.js',
        'bower_components/underscore.string/dist/underscore.string.min.js'
    ]
};

var build = {
    js: 'public/js'
};

gulp.task('libs', function() {
    return gulp.src(dev.libs)
    .pipe(concat('libs.min.js'))
    .pipe(uglify({mangle: false}))
    .pipe(gulp.dest(build.js));
});

在此设置中,每当我添加或删除库时,我都必须手动将其添加到 dev.libs 数组中(并且按正确的顺序),然​​后重新启动 Gulp 以查看新的 lib 文件。

我想要什么

我希望能够连接我使用的 js 库,而无需在 (array) dev.libs 中专门定义它们。目前,如果我使用 return gulp.src('**/*.js'),我相信它会连接 bower_components 中的每个 js 文件,这会显然是荒谬的。

问题

有没有办法自动加载连接我需要的库,而不必在 gulpfile 中定义它们?

最佳答案

对于Bower,您可以使用插件main-bower-files 它将解析您的 bower.json 内容并搜索每个依赖项的 main 文件,因此您不必声明每个库。

var bowerFiles = require('main-bower-files');

然后你可以这样做:

gulp.task('libs', function () {
  return gulp.src(bowerFiles())
    .pipe(concat('libs.min.js'))
    .pipe(uglify({mangle: false}))
    .pipe(gulp.dest(build.js));
});

关于javascript - 咕噜声/咕噜声 : Concatenate only necessary JS files?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26150602/

相关文章:

php - 使用 composer、gulp 和 Travis 的 PHP 网站的目录结构

javascript - Easeljs 中动画的奇怪行为

javascript - 为什么 (&) 符号未显示在 Android 默认消息传递应用程序中?

node.js - npm 不会安装 express 吗?

javascript - 如何使用meteor.js监控浏览器中的数据传输?

eclipse - 在Eclipse中使用Ant复制文件到Tomcat目录

javascript - 如何重写 Node.js 模块中的函数?

javascript - getJSON 和 mod 重写

node.js - gyp 重建失败且链接器命令失败,退出代码为 1

java - netbeans 依赖库在更改后无法编译