javascript - Grunt + Concat + Angularjs

标签 javascript angularjs node.js gruntjs grunt-contrib-concat

设置:

  • 具有以下任务的 Gruntfile:

    连接:{ build : { 文件:{ 'build/app.js': [ 'src/.js', 'src//.js', '!src/vendors/' ], } }

  • 许多 Angular 模块及其 Controller 、服务等,其结构如下:

    一个/ a.js//模块声明如: angular.module('a',[]) a-controller.ks//在其根模块定义中设置 Controller ,例如: angular.module('a').controller()...

问题:

该任务将它在 build 文件夹中找到的所有 js 文件连接到一个 app.js 文件,它做得很好,但是搞砸了连接时按照文件的顺序

例如,它首先连接 Controller 文件而不是包含模块声明的主文件夹文件,从而触发以下错误:

Module xxxx not available!

我认为问题在于 concat 构建文件的方式,这是由 grunt 核心,特别是 minimatch 库完成的,以及它处理破折号的可能性首先是字母,但我不知道如何配置来改变这种行为,甚至不知道这是否可能。

问题:

所以,问题是:如何使 Grunt/Grunt-concat 比同一文件夹中的其他文件先处理虚线 f,以便保持顺序?

谢谢

更新1:

经过更多挖掘,似乎它与文件夹内的顺序无关,但 Grunt/Core 将根文件发送到最后并将它们放在叶文件前面。

最佳答案

只需指定您想要连接文件的顺序,将它们按顺序放置,我的意思是,首先添加应在开始时连接的单个文件,在不需要顺序的完整文件夹之后,然后最后是你的最终文件,大致如下:

grunt.initConfig({
  concat: {
    js: {
      src: ['lib/before.js', 'lib/*', 'lib/after.js'],
      dest: 'bundle.js',
    }
  }
});

关于javascript - Grunt + Concat + Angularjs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30402972/

相关文章:

javascript - 谷歌地图未显示在网页上但显示在本地主机上

javascript - 我知道什么是 javascript Promise,但是 "a function that returns a Promise"有名称吗?

angularjs - 不要在 View 中评估变量

javascript - 如何在deck.gl的iconlayer中使用svg

node.js - GCP 云存储 : What is the difference between bucket. 上传和文件保存方法?

javascript - 将函数添加到 onClick 中

javascript - 是否有可能通过多个 JS 脚本影响单个 Angular 应用程序?

javascript - 在 `service` 方法中注入(inject) `run`

node.js - 我对 Node.js 中 libuv 线程池的理解是否正确?

javascript - Redux/React-Redux - 在 reducer 中使用 "state = XXX"