2016-08-26 10 views
0

Я пытаюсь скопировать все каталоги как часть генератора Йомен. У меня есть несколько функций, которые называют this.fs.copy, и он работает как ожидалось (по большей части), кроме . Шрифты и assetsdev. Я не могу понять, почему задача assetsdev копирует исходную папку в каталог шрифтов, а не в корень, который я указал. Вот мои три функции, которые оптовой скопировать каталог:Справочник копий Yeoman не работает

this.props.dotDest = './'; 
    this.props.srcPath = './assets-dev'; 
    this.props.destPath = './public/assets'; 

    dotfiles: function() { // Works as expected. Copies to the root. 
     this.fs.copy(
      this.templatePath('dot_files/.*'), 
      this.destinationRoot(this.props.dotDest) 
     ); 
    }, 

    fonts: function() { // Works as expected. Copies to the bootstrap directory. 
     var done = this.async(); 

     this.log(chalk.magenta.bold('Copying /fonts')); 
     this.fs.copy(
      this.templatePath('fonts'), 
      this.destinationRoot(this.props.destPath + '/fonts/bootstrap') 
     ) 

     done(); 
    }, 

    assetsdev: function() { // Does NOT work. Copies to the Bootstrap directory rather than the root. 
     var done = this.async(); 

     this.log(chalk.magenta.bold('Copy assets-dev')); 
     this.fs.copy(
      this.templatePath('assets-dev'), 
      this.destinationRoot(this.props.srcPath) 
     ); 

     done(); 
    }, 

Я ожидаю, что в результате структура папок будет

-assets-dev 
    -public 
     -assets 
      -fonts 
       -bootstrap 
        -fontfile 
        -fontfile 
        -fontfile 

Но вместо этого он генерируя ...

-public 
     -assets 
      -fonts 
       -bootstrap 
        -assets-dev 
        -fontfile 
        -fontfile 
        -fontfile 

... и я не могу понять, почему. Я даже попытался использовать метод async(), если он работал асинхронно и оказался в этом каталоге, когда запускается функция assetsdev.

Кто-нибудь знает, почему assetsdev копирует в нужную папку? Надеюсь, я достаточно четко объяснил. Заранее спасибо!

ответ

1

Поэтому, по-видимому, я не могу использовать destinationRoot(). Вместо этого я должен использовать destinationPath(). Я не уверен, почему, но правильно используя destinationPath().

+0

'destinationRoot()' назначает корень создаваемого проекта. Он не создает путь, как вы ожидали. –

+0

Ах, это имеет смысл. Поэтому, когда я запускал его в предыдущей задаче, он по существу устанавливал корневую папку на этот путь. Спасибо за разъяснения! – 5k313t0r

 Смежные вопросы

  • Нет связанных вопросов^_^