javascript - gulp-usemin 可以接受多个文件吗?

标签 javascript node.js yeoman gulp

我有一个关于 usemin 的问题,我不确定它是否是一个错误。

我的应用程序结构很简单:

- root
    |- gulpfile.js
    |- app
    |   |- index.html
    |   |- about.html
    |   |- contact.html
    |   |- js
    |       |- a.js
    |       |- b.js
    |       |- c.js
    |       |- d.js
    |       |- e.js
    |
    |- dist

我的每个 html 文件中都有一个 usemin block 来包含所有脚本,例如:

<!-- build:js js/app.js -->
<script src="../js/a.js"></script>
<script src="../js/b.js"></script>
<script src="../js/c.js"></script>
<script src="../js/d.js"></script>
<script src="../js/e.js"></script>
<!-- endbuild -->

当我运行以下任务时:

gulp.task('usemin'. function() {
    gulp.src('app/*.html')
        .pipe(usemin({
            assetDir: 'app/**/'
        }))
        .pipe(dest('dist/'))
});

只有第一个 html 文件会复制到新目录,本例中的 js 按预期连接。

当我将 gulp.src 更改为 gulp.src(['index.html','about.html','contact.html']) 我遇到一个不同的问题,所有 html 文件都复制过来,但只有按字母顺序排列的第一个文件运行 usemin block ,用新脚本替换 5 个脚本。

任何见解都会很棒,我已经广泛阅读了 gulp 文档和 gulp-usemin 文档,但找不到任何原因会发生这种情况。

我的两个案例中的第一个在 NPM 网站上的示例甚至作为示例给出,不确定这里发生了什么?也许与我从哪里运行 gulpfile 有关?

这可能吗?

干杯。

编辑: 不确定这里发生了什么,但我创建了一个全新的项目并从头开始构建/安装了 npm 插件和脚本,一切正常。这不是一个很好的解决方案,但它节省了我一些时间。

最佳答案

不使用 gulp-usemin 而是重写要在 bower.json 中使用的主文件,如下所示:

{
  "name": "appName",
  "dependencies": {
    "angular": "~1.3.9",
    "angular-animate": "~1.3.9",
    "angular-ui-router": "~0.2.13"
  },
  "overrides": {
    "angular": {
      "main": "angular.min.js"
    },
    "angular-animate": {
      "main": "angular-animate.min.js"
    },
    "angular-ui-router": {
      "main": "release/angular-ui-router.min.js"
    }
  }
}

关于javascript - gulp-usemin 可以接受多个文件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27934320/

相关文章:

sass - 如何在波旁威士忌而不是 compass 中使用Yeoman?

javascript - AngularJS 指令范围似乎只接受一个参数

javascript - javascript中如何获取对象的大小

javascript - 如何使用 sequelize 从响应中删除属性?

javascript - 如何使用 Multer 验证 Express 中文件上传的大小?

javascript - AngularJS,Node.js, Node 模块 'phantom' ...注入(inject)错误,angularjs 试图加载我的指令 + 后缀

node.js:错误:找不到模块

Linux目录卡在只读状态

使用 var 名称调用 javascript getInterval

javascript - 将 PHP 集成到 Javascript 中以使用 Google API 显示 map 标记