我包含了一个用 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/