【发布时间】:2013-12-20 19:00:08
【问题描述】:
Gruntfile 的输出是public/assets/app.js 中的一个空文件。 Sass 部分工作正常,但 JS 部分不能。
//Gruntfile
module.exports = function(grunt) {
//Initializing the configuration object
grunt.initConfig({
// Task configuration
sass: {
dist: {
options: {
style: 'compressed'
},
files: {
'./public/assets/app.css': './app/assets/scss/style.scss'
},
noCache: true
}
},
concat: {
options: {
separator: ';',
},
dist: {
src: [
'./app/bower/jquery/jquery.js',
'./app/assets/js/script.js'
],
dest: './public/assets/app.js',
},
},
uglify: {
options: {
mangle: false
},
dist: {
files: {
'./public/assets/app.js': './public/assets/app.js',
}
},
},
jshint: {
all: ['Gruntfile.js', './public/assets/app.js']
},
watch: {
js: {
files: [
'./app/assets/bower/*.js',
'./app/assets/js/*.js'
],
tasks: ['jshint', 'concat', 'uglify'],
options: {
livereload: false
}
},
sass: {
files: ['./app/assets/scss/*.scss'],
tasks: ['sass'],
options: {
livereload: false
}
}
}
});
// Plugin loading
grunt.loadNpmTasks('grunt-contrib-concat');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-contrib-sass');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-jshint');
// Task definition
grunt.registerTask('default', ['sass', 'jshint', 'concat', 'uglify', 'watch']);
};
但我无法找出问题所在。甚至 JSHint 也没有显示错误。 结构如下:https://www.dropbox.com/s/y0t2tu0asotz0ex/Screenshot%202013-12-20%2020.49.54.png
【问题讨论】:
-
通常一个空的 concat 文件是因为 concat 任务没有找到源文件。如果没有看到你的目录结构,就很难说你的 Gruntfile 是否正确。
-
您是否能够单独运行
grunt concat并取得任何成功?还是同样的结果?我也会尝试只使用'app/bower/jquery/jquery.js'(前面没有“./”)-我知道这不重要,但是... -
不。一样。而且 Grunt concat 可以正常工作:
Running "concat:dist" (concat) task File "./public/assets/app.js" created. Done, without errors. -
等等,
grunt concat是否可以工作并生成包含所有内容的文件?如果是这样,我猜这是你的uglify任务。在这种情况下,请尝试将 uglify 任务的输出名称设为其他名称(例如app.min.js)。
标签: gruntjs grunt-contrib-concat grunt-contrib-uglify