2017-04-21 21 views
0

我創建一個轉換,取代的所有實例:如何在所有文件上運行jscodeshift轉換?

templateUrl: 'some/url/to/some.html' 

template: require('some/url/to/some.html') 

我這樣做,因爲我改變我們的AngularJS代碼帶來了他們的模板的方式。我打算讓它們全部使用webpack字符串加載器。

我已經完成了轉換工作。但是現在我不知道如何針對我的項目中的所有文件運行它。我無法在文檔中看到如何針對我的項目中的所有.js文件運行此操作。運行我的轉變,我現在鍵入:

jscodeshift ./folder/myComponent.js -t ./tools/codemodes/template.js -d -p 

此命令將運行我改變對myComponent.js文件,但我希望它針對所有.js文件在我的項目上運行。我需要使用當前的命令進行更改,以便選擇所有.js文件,並針對所有這些文件運行轉換?

回答

1

如果要針對目錄中的所有文件運行轉換,只需輸入目錄路徑而不是文件路徑。在上面的示例中,執行以下操作:

jscodeshift ./folder -t ./tools/codemod/templates.js -d -p 

這將對所有嵌套的js文件運行轉換。

1

由frosty提供的答案將運行在目錄中的所有文件,而不僅僅是JS文件。如果你想只運行在所有嵌套的JS文件的轉換,使用**水珠語法:

jscodeshift ./path/to/folder/**/*.js -t ./tools/codemod/templates.js -d -p 

注意,某些彈不承認**,你將不得不與第一手動打開它:

$ shopt -s globstar 
相關問題