我正在创建一个替换所有实例的转换:
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
文件,并针对所有文件运行转换?
答案 0 :(得分:2)
如果要对目录中的所有文件运行转换,只需输入目录路径,而不是文件路径。在上面的示例中,执行以下操作:
jscodeshift ./folder -t ./tools/codemod/templates.js -d -p
这将针对所有嵌套的js文件运行转换。
答案 1 :(得分:1)
frosty提供的答案将在目录中的所有文件上运行,而不仅仅是JS文件。如果您只想对所有嵌套的JS文件运行转换,请使用**
glob语法:
jscodeshift ./path/to/folder/**/*.js -t ./tools/codemod/templates.js -d -p
请注意,某些炮弹无法识别**
,您必须首先手动启用它:
$ shopt -s globstar