4

我正在创建一个转换,它将替换以下所有实例:

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文件并针对所有文件运行转换?

4

2 回答 2

4

如果要对目录中的所有文件运行转换,只需输入目录路径,而不是文件路径。在上面的示例中,执行以下操作:

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

这将对所有嵌套的 js 文件运行转换。

于 2017-04-21T16:33:53.497 回答
3

霜冻提供的答案将在目录中的所有文件上运行,而不仅仅是JS文件。如果您只想对所有嵌套的 JS 文件运行转换,请使用**glob 语法:

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

请注意,某些 shell 无法识别**,您必须先手动打开它:

$ shopt -s globstar
于 2018-01-04T03:36:44.413 回答