This repository was archived by the owner on Apr 20, 2018. It is now read-only.
-
-
Notifications
You must be signed in to change notification settings - Fork 332
This repository was archived by the owner on Apr 20, 2018. It is now read-only.
Usemin fails to update CSS file & JS file image paths correctly. #629
Copy link
Copy link
Open
Description
module.exports = function (grunt) {
require('matchdep').filterDev('grunt-*').forEach(grunt.loadNpmTasks);
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
banner: '',
game_name : 'diaoyu',//项目名字
//清除目录
clean: {
all: ['dist/view/<%=game_name%>/**', 'dist/*.*'],
image: 'dist/static/<%=game_name%>/res',
css: 'dist/static/<%=game_name%>/css',
js: 'dist/static/<%=game_name%>/js',
html: 'dist/view/<%=game_name%>/*'
},
copy: {
src: {
files: [
{expand: true, cwd: 'test1/view/<%=game_name%>', src: ['*.html'], dest: 'dist/view/<%=game_name%>'},
{expand: true, cwd: 'test1/lib/js', src: ['**/*.js'], dest: 'dist/lib/js'},
{expand: true, cwd: 'test1/static/common', src: ['**/*.{css,js,mp3}'], dest: 'dist/static/common'}
]
},
image: {
files: [
{expand: true, cwd: 'test1/static/<%=game_name%>', src: ['res/**/*.{png,jpg,jpeg,gif,mp3}'], dest: 'dist/static/<%=game_name%>'}
]
}
},
// 文件合并
concat: {
options: {
separator: '',//分隔符号
stripBanners: true,//允许添加头部
//在头部添加 js文件名和时间的注释
banner: '/*! <%=pkg.name%>-<%=pkg.version%>.js <%=grunt.template.today("yyyy-mm-dd") %> */\n'
},
js: {
src: [
"test1/static/<%=game_name%>/js/*.js"
],
// dest: "dist/html/js/game.min.js"
dest: "dist/static/<%=game_name%>/js/game.min.js"
},
css:{
src: [
"test1/static/<%=game_name%>/css/*.css", "test1/static/common/css/*.css", "test1/lib/css/*.css"
],
dest: "dist/static/<%=game_name%>/css/game.min.css"
}
},
//压缩JS
uglify: {
prod: {
files: {
'dist/static/<%=game_name%>/js/game.min.js': ['test1/static/<%=game_name%>/js/*.js', '!test1/static/<%=game_name%>/js/*.min.js']
}
}
},
//这种方法需要将上一步合并的操作生成文件改成libs.min.js
// uglify: {
// build: {
// src: 'dest/libs.min.js',
// dest: 'dest/game.min.js'
// }
// },
//压缩CSS
cssmin: {
prod: {
options: {
report: 'gzip'
},
files: [
{
expand: true,
cwd: 'dist/static/<%=game_name%>',
src: ['css/*.css'],
dest: 'dist/static/<%=game_name%>'
}
]
}
},
//压缩图片
imagemin: {
prod: {
options: {
optimizationLevel: 7,
pngquant: true
},
files: [
{expand: true, cwd: 'dist/static/<%=game_name%>', src: ['res/**/*.{png,jpg,jpeg,gif,webp,svg}'], dest: 'dist/static/<%=game_name%>'}
]
}
},
rev: {
options: {
algorithm: 'sha1',
length: 8
},
assets: {
files: [{
src: [
'dist/static/<%=game_name%>/**/*.{css,jpg,jpeg,gif,png,js}'
]
}]
}
},
useminPrepare: {
html: ['test1/view/<%=game_name%>/*.html'],
options: {
// 测试发现这里指定的dest,是usemin引入资源的相对路径的开始
// 在usemin中设置assetsDirs,不是指定的相对路径
// List of directories where we should start to look for revved version of the assets referenced in the currently looked at file
dest: 'dist/static/diaoyu' // string type
}
},
// 处理html中css、js 引入合并问题
usemin: {
options: {
assetsDirs: [
'dist/static/diaoyu/res/**/*.{png,gif,jpg,jpeg}',
'dist/static/diaoyu/css/*.css',
'dist/static/diaoyu/js/*.js'
],
patterns: {
js: [[/([\w-]+\.png)/, 'replace res in js']]
}
},
js: 'dist/static/diaoyu/js/**/*.js',
css: 'dist/static/diaoyu/css/**/*.css',
html: 'dist/view/diaoyu/**/*.html',
},
//压缩HTML
htmlmin: {
options: {
removeComments: true,
removeCommentsFromCDATA: true,
collapseWhitespace: true,
collapseBooleanAttributes: true,
removeAttributeQuotes: true,
removeRedundantAttributes: true,
useShortDoctype: true,
removeEmptyAttributes: true,
removeOptionalTags: true
},
html: {
files: [
{expand: true, cwd: 'dist/view/<%=game_name%>', src: ['*.html'], dest: 'dist/view/<%=game_name%>'}
]
}
}
});
grunt.registerTask('prod', [
'copy', //复制文件
'concat', //合并文件
// 'imagemin', //图片压缩
// 'cssmin', //CSS压缩
'uglify', //JS压缩
'rev', //重置文件名
'usemin:html', //HTML处理
'usemin:css', //HTML处理
'usemin:js', //HTML处理
// 'htmlmin', //HTML压缩
]);
grunt.registerTask('build', ['clean', 'prod']);
};
Metadata
Metadata
Assignees
Labels
No labels