2016-08-31 25 views
0

我需要替換目錄樹中的文本並複製到另一個文件夾。我正在使用grunt文本替換插件和Glob npm。你可以看到旁邊的配置:如何配置grunt-string-replace來複制和替換目錄樹?

replace: { 
    replace2: { 
     src: 'js/app/circo/**/*.js', 
     dest: 'js/app/circo2/', 
     replacements: [{ 
      from: 'app/payasos',    
      to: 'app/funambulistas' 
      } 
     ] 
    } 
}, 

此設置替換文本和複製所有文件到JS /應用/ circo2/文件夾樹中消失。

我嘗試將DEST更改爲:

dest: 'js/app/circo2/**', 

但本次車展這個錯誤:

Running "replace:replace2" (replace) task Warning: Unable to read "js/app/circo/" file (Error code: EISDIR). Use --force to continue.

感謝。

+0

你在改變'dest'時試圖完成什麼? – MoolsBytheway

+0

我試圖複製目錄樹。這只是一個測試。 –

+0

@MoolsBytheway Glob文檔說:_ **如果一個「globstar」在路徑部分單獨存在,那麼它匹配零個或多個目錄和搜索匹配的子目錄。它不抓取符號鏈接的目錄._ –

回答

0

那麼,我終於使用了兩個Grunt插件:複製和替換。配置:

copy: { 
    main: { 
     files: [ 
      {expand: true, cwd: 'js/app/circo/',src: '**', dest: 'js/app/circo2/'} 
     ] 
    } 

}, 

replace: { 
    replace2: {  
     src: 'js/app/circo2/**/*.js', 
     overwrite:true, 
     replacements: [{ 
      from: 'app/payasos',    
      to: 'app/funambulistas' 
      } 
     ] 
    } 
} 

首先複製使所有src相對於cwd的文件。您可以看到設置here

其次,我從 '應用程序/ payasos' 到 '應用程序/ funambulistas' 在JS更換/應用/ circo2/ /*.js** SRC(所有的JS circo2文件夾內的目錄中的文件和子目錄)。在兩種配置上都使用「globstar」。你可以看到更多關於glob here的信息。

這對我有用,但我相信它可以使用替換。

+1

幹得好,soory我was''nt不在線 – MoolsBytheway

相關問題