gpt4 book ai didi

javascript - Grunt Uglify 通配符和版本控制

转载 作者:搜寻专家 更新时间:2023-11-01 00:45:24 24 4
gpt4 key购买 nike

一段时间以来,我一直在尝试以特定方式组合两个 Grunt JS 插件。基本上,我想使用 UglifyJS 缩小目录中的所有 JS 文件。在此之后,我想使用版本控制插件(在本例中为 grunt-static-versioning)来实现缓存清除。

我的grunt文件如下:

module.exports = function(grunt) {
grunt.initConfig({
clean: ['dest/js'],
uglify: {
options: {
report: 'min',
mangle: true
},
my_target: {
files: [{
expand: true,
cwd: 'src/js',
src: '**/*.js',
dest: 'dest/js'
}]
}
},
cssmin: {
options: {
report:'min'
},
minify: {
expand:true,
cwd: 'src/css',
src: '**/*.css',
dest: 'dest/css',
}
},
imagemin: {
dynamic: {
options: {
optimizationLevel: 7
},
files: [{
expand:true,
cwd: 'src/assets',
src: ['**/*.{png,jpg,gif}'],
dest: 'dest/assets'
}]
}
},
htmlmin: {
mini :{
options: {
removeComments: true,
collapseWhitespace: true,
collapseBooleanAttributes: true,
removeAttributeQuotes: true,
removeRedundantAttributes: true,
removeEmptyAttributes: true,
useShortDoctype: true
},
files: [{
expand:true,
cwd: 'src',
src: '**/*.html',
dest: 'dest'
}]
}
},
versioning: { // Task
options: { // Task options
cwd: ''
},
dist: { // Target
options: { // Target options
},
files: [{
assets: '<%= uglify.my_target.files %>',
key: 'global',
dest: 'dest/js',
type: 'js',
ext: '.js'
}]
}
}
});
grunt.loadNpmTasks('grunt-contrib-clean');
grunt.loadNpmTasks('grunt-static-versioning');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-cssmin');
grunt.loadNpmTasks('grunt-contrib-imagemin');
grunt.loadNpmTasks('grunt-contrib-htmlmin');


grunt.registerTask('default', ['clean', 'uglify', 'cssmin', 'imagemin', 'htmlmin', 'versioning']);}

但是,在执行时出现以下错误:

Running "versioning:dist" (versioning) task
Warning: Unable to read "dest/js" file (Error code: EISDIR). Use --force to continue.

我理解这个错误的发生是因为 dest/js 不是一个文件而是一个目录,但是我不知道如何告诉 version 正确的文件名。是否有特定的 Grunt JS 格式来执行此操作?

最佳答案

似乎启用了一些额外的选项导致了上述错误。我已经纠正了这些并做了一些改变。运行下面的 grunt 文件,看看是否可以无错误地执行。

module.exports = function(grunt) {
grunt.initConfig({
clean : [ 'dest/js' ],
uglify : {
options : {
report : 'min',
mangle : true
},
my_target : {
files : [ {
src : 'src/js/*.js',
dest : 'dest/js/main.min.js'
} ]
}
},
cssmin : {
options : {
report : 'min'
},
minify : {
expand : true,
cwd : 'src/css',
src : '**/*.css',
dest : 'dest/css',
}
},
imagemin : {
dynamic : {
options : {
optimizationLevel : 7
},
files : [ {
expand : true,
cwd : 'src/assets',
src : [ '**/*.{png,jpg,gif}' ],
dest : 'dest/assets'
} ]
}
},
htmlmin : {
mini : {
options : {
removeComments : true,
collapseWhitespace : true,
collapseBooleanAttributes : true,
removeAttributeQuotes : true,
removeRedundantAttributes : true,
removeEmptyAttributes : true,
useShortDoctype : true
},
files : [ {
expand : true,
cwd : 'src',
src : '**/*.html',
dest : 'dest'
} ]
}
},
versioning : { // Task
options : { // Task options
cwd : 'public',
outputConfigDir : 'public/config'
},
dist : { // Target
options : { // Target options
},
files : [ {
assets : '<%= uglify.my_target.files %>',
key : 'global',
dest : 'dest/js',
type : 'js',
ext : '.js'
} ]
}
}
});

grunt.loadNpmTasks('grunt-contrib-clean');
grunt.loadNpmTasks('grunt-static-versioning');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-cssmin');
grunt.loadNpmTasks('grunt-contrib-imagemin');
grunt.loadNpmTasks('grunt-contrib-htmlmin');

grunt.registerTask('default', [ 'clean', 'uglify', 'cssmin', 'imagemin',
'htmlmin', 'versioning' ]);
}

关于javascript - Grunt Uglify 通配符和版本控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20100288/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com