Grunfile.js中的Javascript变量?

Grunfile.js中的Javascript变量?,javascript,jquery,gruntjs,Javascript,Jquery,Gruntjs,我正在维护一个广泛使用Grunt的web应用程序。我必须缩小,复制我的html,css,js文件到不同的位置在不同的时间。因此,为了方便起见,我在GruntFile.js中创建了一个简单的javascript变量,如下所示: var path="C:/dist"; uglify: { options: { mangle: false }, my_target: { files: { path+'/js/jsFile.js'

我正在维护一个广泛使用Grunt的web应用程序。我必须缩小,复制我的html,css,js文件到不同的位置在不同的时间。因此,为了方便起见,我在GruntFile.js中创建了一个简单的javascript变量,如下所示:

var path="C:/dist";

uglify: {
    options: {
       mangle: false
     },
     my_target: {
       files: {
        path+'/js/jsFile.js': ['src/js/jquery-1.10.2.min.js']
        }
     }          
}
当我构建这个时,我得到以下错误

>语法错误:意外的令牌+


我不能在GrunFile.js中使用path变量。因为我有10个位置路径

javascript对象格式不允许变量作为实际键:

path+'/js/jsFile.js'

这应该适合您:

var path = "C:/dist";

var files = {};
files[path+"/js/jsFile.js"] = ['src/js/jquery-1.10.2.min.js'];

//...
options: {
   mangle: false
 },
 my_target: {
   files: files
 }          
您可以在此处看到几个使用变量作为键的示例:


另一种方法是利用Grunt模板:

grunt.initConfig({
  path: 'C:/dist/',
  uglify: {
    options: {
      mangle: false
    },
    '<%= path %>js/jsFile.js': ['src/js/jquery-1.10.2.min.js']
  }          
});
grunt.initConfig({
路径:“C:/dist/”,
丑陋的:{
选项:{
马槽:错
},
'js/jsFile.js':['src/js/jquery-1.10.2.min.js']
}          
});

这不是JSON,而是JavaScript。JavaScript对象表示法,相同的交易。不,不是。它不是JSON,它甚至没有试图成为JSON。它是一个JavaScript对象文本。这两者是不能互换的。抱歉,但不是。JSON是JavaScript的一个严格子集,用于序列化层次结构数据。这不是JSON,而是一个大的ol'JavaScript对象。它们根本不是一回事。“JS对象”不能用于“打算使用JSON”的地方。那没有道理。这两者不一样,不能用JavaScript对象文本替换JSON。这一点很重要,单词有意义,计算机对这类事情非常挑剔。JSON是一种与语言无关的文本数据交换格式,如XML、CSV或YAML。JavaScript对象文字是JavaScript语言的一种非常特殊的语法结构。只是因为它们看起来相似,并不意味着它们是一样的。不正确地使用这些术语只会增加围绕这个主题已经存在的混乱。编辑我在手机上打字很慢;)这类似地,我总是使用
[variable+'string']:value
,它突然停止工作。这个答案为我解决了这个问题。