我正在尝试将变量打印到横幅模板,但输出是空注释,是否可以将值插入模板?
我的代码:
//get the license text
var license = grunt.file.read('license.txt', {'encoding': 'utf-8'});
然后在uglify任务中,我想将该文本添加为横幅
uglify: {
options: {
compress: true,
mangle: true,
sourceMap: false,
banner: '/*! <%= license %> */'
},
target: {
src: 'dist/app.min.js',
dest: 'dist/app.min.js'
}
},
但是,在任何代码开始之前,输出的文件只包含空注释
/*! */
我可以使用console.log(许可证)来确认其值是否正确检索。
答案 0 :(得分:0)
我不确定,但似乎编码导致了这个问题。
不知道您的整个grunt设置,许可证变量应放在配置对象中,例如:
var appConfig = {
app: require('./bower.json').appPath || 'app',
dist: 'dist',
license: grunt.file.read('license.txt')
};
(注意删除了utf-8编码)。
我所拥有的uglify任务略有不同 - 不使用compress
,mangle
,sourceMap
选项。您似乎也可以使用target
或my_target
:
uglify: {
options: {
banner: '/*! ' + '<%= yeoman.license %> */'
},
my_target: {
files: {
'<%= yeoman.dist %>/scripts/scripts.js': ['<%= yeoman.dist %>/scripts/scripts.js']
}
}
}
这很有效。简化的grunt文件:
module.exports = function (grunt) {
...
// Configurable paths for the application
var appConfig = {
app: require('./bower.json').appPath || 'app',
dist: 'dist',
license: grunt.file.read('license.txt')
};
grunt.initConfig({
yeoman: appConfig,
...
uglify: {
options: {
banner: '/*! ' +
'<%= yeoman.license %> */'
},
my_target: {
files: {
'<%= yeoman.dist %>/scripts/scripts.js': ['<%= yeoman.dist %>/scripts/scripts.js']
}
}
},
...
});
};