Javascript grunfile.js任务可以';不读取包值?
在Gruntfile.js的initConfig函数中,我有以下内容:Javascript grunfile.js任务可以';不读取包值?,javascript,node.js,gruntjs,grunt-init,Javascript,Node.js,Gruntjs,Grunt Init,在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' +
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'
}
},
grunt.initConfig({
pkg:grunt.file.readJSON('package.json'),
横幅:'/*!-v-'+
“\n”+
“*版权(c);”,
康卡特:{
选项:{
横幅:'',
条幅:真的吗
},
地区:{
src:['src/.js'],
dest:'dist/.js'
}
},
我正在创建pkg变量,然后尝试从concat.dist下的对象中提取名称,因为这来自一个新的grunt init模板。在运行concat:dist时,我无法读取undefined的属性“name”。我已经验证了package.json”文件中是否存在该文件和节点“name”
鉴于我是node的新手,我不确定调用grunt任务时这些闭包是否会持续存在,如果它们持续存在,我是否使用了错误的约定?这有可能吗?我的猜测是,出于某种原因,它无法读取您的
包.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.initConfig({
pkg:grunt.file.readJSON('package.json'),
对数变量:{
数据:“”
}
});
registerTask('logvar',function()){
grunt.log.writeln(grunt.config.get('logvar').data);
});
现在只需从命令行运行
grunt logvar
。如果仍然出现错误,那么我们已经消除了其他任何错误,这意味着您的package.json
文件无法访问。我建议您检查它是否与Gruntfile.js
位于同一目录中,并且它是否具有读取权限。是否存在“在您的包.json
文件中命名“
”?是的,很抱歉,忘了澄清这一点。问题是“未定义”"这通常意味着一个空指针错误,因此是一个空对象。我要澄清一下,谢谢你的工作!!!现在我完全糊涂了。谢谢你的建议,非常有用,给了我很多新的见解。如果这样做有效,那么我会尽可能让你的设置降到最低,看看哪里出了问题…你确定这是的问题吗cat
任务?可能是“上面”的某个东西破坏了东西?可能创建另一个变量(如横幅
)并使用它来查看它是否有效?它必须在那之前…我已经硬编码了名称,我也遇到了同样的问题。谢谢!