如何从gruntfile替换test.js文件中的变量?

时间:2017-06-22 12:40:20

标签: javascript angularjs node.js gruntjs

例如我有这个代码,有了这个代码,我只能替换任何文件中的字符串,但是由于替换了变量的值,我需要这样的东西。

'string-replace': {

  dist:{
    files: [{
      expand: true,
      src: 'test.js'

    }],
    options: {  
      replacements: [{
        pattern: 'blabla',
        replacement: 'blabla1'

      }],     
     }
  }

1 个答案:

答案 0 :(得分:0)

我100%肯定你想要实现的目标。您可以替换下面的变量赋值,以便获得新值。这是你想要做的吗?

'string-replace': {

  dist:{
    files: [{
      expand: true,
      src: 'test.js'

    }],
    options: {  
      replacements: [{
        pattern: 'var myVar = oldValue', //replace var assignment
        replacement: 'var myVar = newValue'//var has newValue now

      }],     
     }
  }

<强>更新 您只能在运行时访问myVar的当前值。你不能使用grunt来确定。但是,您可以将myVar设置为您想要的任何值,如上所述。或者,例如,如果你有像:

这样的代码
if(myVar)
{
  //do this block
}

您可以执行文本替换以插入

var tmp = myVar
myVar = true;
if(myVar){
//will now always run
}
myVar=tmp // resetState