2015-06-12 78 views
2

我想將一個變量打印到橫幅模板,但輸出是一個空的註釋,是否可以將值插入模板?grunt打印變量到模板

我的代碼:

//get the license text 
var license = grunt.file.read('license.txt', {'encoding': 'utf-8'}); 

然後在醜化的任務,我想的文本添加爲​​旗幟

uglify: { 
 
    options: { 
 
     compress: true, 
 
     mangle: true, 
 
     sourceMap: false, 
 
     banner: '/*! <%= license %> */' 
 
    }, 
 
    target: { 
 
     src: 'dist/app.min.js', 
 
     dest: 'dist/app.min.js' 
 
    } 
 
},

但outputed文件只包含一個空評論在任何代碼開始之前

/*! */ 

我可以console.log(許可證)確認其值正確檢索。

+0

嘗試:'grunt.config.set( 'uglify.license',許可);'和替換'<%=許可證%>''由<%= uglify.license%> ' – Hacketo

+0

您的咕嚕文件是否與yeoman搭配? –

回答

0

我不確定,但似乎編碼導致了問題。

不瞭解整個咕嚕設置的,許可證變量應該被放置在一個配置對象,例如:

var appConfig = { 
    app: require('./bower.json').appPath || 'app', 
    dist: 'dist', 
    license: grunt.file.read('license.txt') 
}; 

(注意UTF-8編碼被移除)。

我所擁有的uglify任務略有不同 - 沒有使用compress,mangle,sourceMap選項。這似乎也可以使用targetmy_target

uglify: { 
    options: { 
    banner: '/*! ' + '<%= yeoman.license %> */' 
    }, 
    my_target: { 
    files: { 
     '<%= yeoman.dist %>/scripts/scripts.js': ['<%= yeoman.dist %>/scripts/scripts.js'] 
    } 
    } 
} 

這是工作。簡化咕嚕文件:

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'] 
     } 
     } 
    }, 

    ... 

    }); 

}; 
+0

謝謝,它設置在appConfig obj工作! – wazzaday

+0

@wazzaday很好,很高興它幫助! :) –