javascript - 使用 grunt 编译和合并 coffeescript 和 javascript

标签 javascript coffeescript gruntjs uglifyjs

我包含了一个用 Javascript 编写的库,还有一些依赖于这些库的 coffeescript 代码。

当我使用 GRUNT 发布时,我想创建一个 Javascript 文件,该文件是通过将所有 JS 和 Coffee 文件组合在一起而制成的。显然都不是grunt-contrib-uglifyjs也不Grunt-contrib-coffee支持这种行为。这个问题的解决方案是什么?

最佳答案

您可以使用 concat 来做到这一点。

例如,在您的 Gruntfile.js 中:

module.exports = function(grunt) {
  return grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),
    // EDIT: TO COMPILE YOUR COFFEESCRIPT
    coffee: {
      "default": {
        src: paths.coffee_src,
        dest: paths.js_dir,
        options: {
          preserve_dirs: true,
          base_path: paths.coffee_dir
        }
      }
    },
    concat: {
      options: {
        separator: ';'
      },
      dist: {
        src: ['assets/javascripts/libs/underscore/underscore.js', 'assets/javascripts/libs/jquery/jquery.js', 'assets/javascripts/libs/json2/json2.js', 'assets/javascripts/libs/handlebars-wycats/dist/handlebars.js', 'assets/javascripts/libs/backbone/backbone.js', 'assets/javascripts/libs/marionette/lib/backbone.marionette.js', 'assets/javascripts/*.js', 'assets/javascripts/utilities/*.js', 'assets/javascripts/models/*.js', 'assets/javascripts/collections/*.js', 'assets/javascripts/modules/**/**/*.js'],
        dest: '<%= pkg.name %>.js'
      }
    },
    // ...
    // EDIT: TO MINIFY YOUR CONCATENATED JS
    uglify: {
      options: {
        banner: '/*! <%= pkg.name %> <%= grunt.template.today("dd-mm-yyyy") %> */\n'
      },
      dist: {
        files: {
          '<%= pkg.name %>.min.js': ['<%= concat.dist.dest %>']
        }
      }
    },
    // ...

我在这里按顺序连接所有文件(从 underscore.js 开始),因此,您将拥有一个包含所有这些文件的 js 文件,按照您想要的特定顺序。

检查 this documentation获取更多信息。

关于javascript - 使用 grunt 编译和合并 coffeescript 和 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20073014/

相关文章:

node.js - "grunt install"在 Ubuntu 上返回错误

javascript - Grails 3 - 资源插件

javascript - jQuery 对话框 - 一个独特的对话框在 ajax 站点上被复制

javascript - 如何使用php接收通知(远程发布)并运行javascript?

javascript - 根据背景图像/颜色更改文本颜色

node.js - 如何正确处理 IcedCoffeeScript 的错误?

javascript - 在 VIM 中快速切换 CoffeeScript 和 JavaScript 文件

javascript - 在 View 中访问 AngularJS 常量

node.js - grunt 命令如何工作?

gruntjs - compass 0.12.7 中的 "Cannot determine the opposite position of: to"错误