Gruntfile.js中的Javascript变量?

时间:2014-02-07 18:20:14

标签: 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': ['src/js/jquery-1.10.2.min.js']
        }
     }          
}

当我构建这个时,我收到以下错误

>> SyntaxError: Unexpected token +

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

2 个答案:

答案 0 :(得分:46)

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

grunt.initConfig({
  path: 'C:/dist/',
  uglify: {
    options: {
      mangle: false
    },
    '<%= path %>js/jsFile.js': ['src/js/jquery-1.10.2.min.js']
  }          
});

答案 1 :(得分:2)

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
 }          

您可以在此处看到几个使用变量作为关键的示例:

How To Set A JS object property name from a variable