我的grunt文件如下所示:
module.exports = function(grunt) {
// Project configuration.
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
uglify: {
options: {
banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n'
},
build: {
src: 'src/**/*.js',
dest: 'dist/<%= pkg.name %>.min.js'
}
},
watch: {
js: {
files: ['src/**/*.js'],
options: {
livereload: '<%= connect.options.livereload %>'
}
},
livereload: {
options: {
livereload: '<%= connect.options.livereload %>'
},
files: [
'src/**/*.html',
'src/**/*.css',
'src/assets/images/{,*/}*.{png,jpg,jpeg,gif,webp,svg}'
]
}
},
connect: {
options: {
port: 9000,
livereload: 35729,
hostname: 'localhost'
},
livereload: {
options: {
open: true,
// base: [
// '.tmp',
// ''
// ]
middleware: function(connect) {
return [
connect.static('.tmp'),
connect().use(
'/bower_components',
connect.static('./bower_components')
),
connect().use(
'/app/styles',
connect.static('./app/styles')
),
connect.static('src')
];
}
}
}
},
copy: {
app: {
cwd: 'src', // set working folder / root to copy
src: '**/*.html', // copy all files and subfolders
dest: 'dist/', // destination folder
expand: true
},
assets: {
cwd: 'src', // set working folder / root to copy
src: 'assets/*', // copy all files and subfolders
dest: 'dist/', // destination folder
expand: true
}
},
useminPrepare: {
options: {
dest: 'dist'
},
html: 'src/index.html'
},
usemin: {
html: ['dist/index.html']
}
});
// Load the plugin that provides the "uglify" task.
// grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-connect');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-copy');
grunt.loadNpmTasks('grunt-contrib-concat');
grunt.loadNpmTasks('grunt-usemin');
// Default task(s).
grunt.registerTask('default', ['useminPrepare', 'copy', 'concat', 'uglify', 'usemin']);
grunt.registerTask('serve', function(target) {
grunt.task.run([
'connect:livereload',
'watch'
]);
});
};
当我运行grunt获取错误消息为“No”concat“targets found”。 我已经尝试了2个小时来解决这个问题但没有结果请帮我解决问题。
答案 0 :(得分:4)
方式为时已晚,但万一它对其他人有用:我相信useminprepare会自动生成一个concat配置并将其提供给grunt任务运行器,所以上面的响应不太准确我会说。
我会尝试查看src / index.html中的构建块,并检查路径是否正确指向了使用minPrepare将连接的资源。我现在正在努力解决这样的问题:S
答案 1 :(得分:0)
使用以下过程进行调试:
指定temp
存储位置(temp
或staging
)目录
在运行usemin
之前,请确保temp
或staging
目录不为空
如果为空,请运行grunt copy
任务,其中temp
或staging
目录设置为dest
参数
关于目录和任务,要记住的主要区别是,对于
useminPrepare
,目录需要指示输出处理器管道的正确配置所需的输入,瞬态和输出路径,而在usemin
的情况下,它只反映输出路径,因为所有需要的资产都应该输出到目标目录(转换或刚刚复制)。
<强>参考强>