冲突安全附加到Yeoman Generator中的现有文件

时间:2016-01-25 20:49:16

标签: javascript django yeoman yeoman-generator

我正在为我正在研究的Django / Angular项目编写一个yeoman生成器。项目中很大一部分样板涉及管理依赖项。为了简化这种依赖关系管理,我将某些文件视为头文件,用于定义某个包导出或导入的内容。例如,当我在my_model.py包中创建新文件my_app/models/时,我想将行from .my_model import MyModel追加到my_app/models/__init__.py

由于这只是一个简单的附加,并不特别取决于__init__.py文件的其余内容,我认为这是一个非常安全的文件更新。我的问题是,从开发的角度来看,是否有办法将yeoman中的特定文件更新标记为安全,从而允许用户在运行生成器的冲突解决阶段不必签署它们。

目前我执行追加的方式是:

var self = this;
this.fs.copy(
  this.destinationPath(this.props.appName + '/models/__init__.py'),
  this.destinationPath(this.props.appName + '/models/__init__.py'),
  { 
    process: function (contents) {
      return contents += 'from .' + _.snakeCase(self.props.modelName) + ' import ' + self.props.modelName + '\n';
    }
  }
);

2 个答案:

答案 0 :(得分:1)

没有办法签署冲突。决定最终用户的安全性是什么?#34;安全"什么不是。

如果您引入了一个错误并且破坏了用户文件,该怎么办?这就是生成器无法跳过冲突的原因。

答案 1 :(得分:0)

有些时候你可能想要替换一些文件,例如在第一次运行时替换gulp或grunt文件,即取出框架源代码......

Toby在这里提供了一个很好的方法: read here