在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'
}
},
我正在创建pkg变量,然后尝试从concat.dist下的对象中提取名称,因为这来自新的grunt-init模板。我得不到财产&#39; name&#39;运行concat时的undefined:dist。我已经验证了文件和节点&#34; name&#34;的存在。在package.json&#34;文件。
鉴于我是节点的新手,我不确定在调用grunt任务时这些闭包是否仍然存在,如果他们这样做,我是否使用了错误的约定?这甚至可能吗?
答案 0 :(得分:4)
我的猜测是,由于某种原因,它无法读取您的package.json
文件。要么是因为它不存在(可能不同地命名?)或者没有读取权限。您可以创建一个简单的测试,以查看是否可以从Grunt访问该文件:
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
logvar: {
data: '<%= pkg.name %>'
}
});
grunt.registerTask('logvar', function() {
grunt.log.writeln(grunt.config.get('logvar').data);
});
现在只需从命令行运行grunt logvar
。如果您仍然收到错误,那么我们已经删除了其他任何内容,这意味着您的package.json
文件无法访问。我建议检查它与Gruntfile.js
在同一目录中,并且它具有读权限。