在多个文件夹和供应商javascript文件中按特定顺序查看和编译coffeescript,并组织sass和html模板

在多个文件夹和供应商javascript文件中按特定顺序查看和编译coffeescript,并组织sass和html模板,javascript,build,coffeescript,sass,cakefile,Javascript,Build,Coffeescript,Sass,Cakefile,我的目录结构如下: + src | | - modules | | | | - auth | | | | | | - auth.coffee | | | - auth.sass | | | - login.html | | | - logout.html | | | | - navigation | | | | | | - navigation.coffee | |

我的目录结构如下:

+ src
  |
  | - modules
  |   |
  |   | - auth
  |   |   |
  |   |   | - auth.coffee
  |   |   | - auth.sass
  |   |   | - login.html
  |   |   | - logout.html
  |   |
  |   | - navigation
  |   |   |
  |   |   | - navigation.coffee
  |   |   | - navigation.sass
  |   |   | - navbar.html
  |   |  
  | - scripts
  |   |
  |   | - vendor
  |   |   |
  |   |   | - underscore.js
  |   |   | - angular.js
  |   |
  |   | - app.coffee
  |   | - router.coffee
  |
  | - styles
  |   |
  |   | - config.sass
  |   | - style.sass
我想:

  • 查看所有
    .coffee
    .sass
    .html
    文件,并在文件发生更改时执行步骤2和步骤3

  • 编译
    .coffee
    .sass
    文件

    对于这两者,我都需要指定依赖项(或:特定的顺序)

    • 咖啡脚本
      • 编译
        scripts/vendor/underline.js
      • 然后
        scripts/vendor/angular.js
      • 然后
        scripts/*.js
      • 然后
        modules/***.js
    • 无礼
      • 编译
        style/config.sass
      • 然后
        style/style.sass
      • 然后
        modules/***.sass
  • 收集所有
    .js
    .css
    .html
    文件,并将它们组织到公用文件夹中

  • 这是期望的输出

    + public
      |
      | - partials
      |   |
      |   | - auth
      |   |   |
      |   |   | - login.html
      |   |   | - logout.html
      |   |
      |   | - navigation
      |   |   |
      |   |   | - navbar.html
      |   |  
      | - scripts
      |   |
      |   | - app.js
      |
      | - styles
      |   |
      |   | - app.css
    
    我尝试了许多工具,但没有得到想要的结果。例如,Coffeescript在编译方法中存在通配符问题


    我想最好的办法是一个能为我做任何事情的档案。我怎样才能做到这一点呢?

    首先,为什么要编译下划线或角度?只需链接到CDN上的缩小版本。通过将它们与应用程序js打包在一起,您可能可以获得更好的性能,对此我没有确切的是/否答案,您必须进行研究

    我认为你应该能够用你的力量完成这项任务。我的配置不是您想要的,但是:

      # Project configuration.
      grunt.initConfig
        watch:
          coffee:
            files: ['app/assets/src/coffee/**/*.coffee', 'app/assets/src/coffee/*.coffee', 'test/*.coffee', '!**/screencaps/**', 'app/webserver.coffee']
            tasks: ['coffee:dev', 'replace', 'mochaTest']
    
      grunt.loadNpmTasks("grunt-contrib-coffee")
      grunt.loadNpmTasks('grunt-contrib-watch')
    
    等等。对于您想要做的事情,我设置了一系列监视命令:

  • 注意
    src/modules/*.coffee中的变化
  • 将所有coffee编译(可选)为js,移动到
    public/scripts
  • 对SASS文件执行相同的操作
    关于不编译js文件,您是完全正确的。它应该是:编译coffescripts并将它们与所有js文件合并