[英]Gruntfile.js task can't read package values?
在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模板。 我正在运行concat:dist时无法读取未定义的属性'name'。 我已经验证了文件的存在以及package.json“文件中的节点”name“。
鉴于我是节点的新手,我不确定在调用grunt任务时这些闭包是否仍然存在,如果他们这样做,我是否使用了错误的约定? 这甚至可能吗?
我的猜测是,由于某种原因它无法读取你的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
在同一目录中,并且它具有读取权限。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.