我正在研究一个我最初使用grunt-init编写的自定义生成器.我注意到的一个区别是grunt-init自动处理root中的所有文件作为模板,但是使用yeoman生成器,你必须使用.template().我熟悉如何使用.template()处理任何单个文件,但是是否可以处理整个目录?
在Gruntfile.js的initConfig函数中,我具有以下内容:
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
banner: '/*! <%= pkg.title || pkg.name %> - v<%= pkg.version %> - ' +
'<%= grunt.template.today("yyyy-mm-dd") %>\n' +
'* Copyright (c) <%= grunt.template.today("yyyy") %> <%= pkg.author.name %>;',
concat: {
options: {
banner: '<%= banner %>',
stripBanners: true
},
dist: {
src: ['src/<%= pkg.name %>.js'],
dest: 'dist/<%= pkg.name %>.js'
}
},
Run Code Online (Sandbox Code Playgroud)
我正在创建pkg变量,然后尝试从concat.dist下的对象中提取名称,因为它来自新的grunt-init模板。运行concat:dist时,我无法读取未定义的属性“名称”。我已经验证了文件和package.json“文件中节点” name“的存在。
鉴于我是Node的新手,所以我不确定在调用grunt任务时这些闭包是否会持续存在,如果确实存在,我使用的约定是否错误?这有可能吗?