如何 运行 对所有文件进行 jscodeshift 转换?
How to run jscodeshift transform on all files?
我正在创建一个将替换所有实例的转换:
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
文件进行 运行 转换。我需要用我当前的命令更改什么才能使其 select 所有 .js
文件,并且 运行 对所有这些文件进行转换?
如果要运行 对目录中的所有文件进行转换,只需输入目录路径,而不是文件路径。在上面的示例中,执行以下操作:
jscodeshift ./folder -t ./tools/codemod/templates.js -d -p
这将 运行 对所有嵌套的 js 文件进行转换。
frosty 提供的答案将 运行 目录中的所有文件,而不仅仅是 JS 文件。如果你只想 运行 对所有嵌套的 JS 文件进行转换,请使用 **
glob 语法:
jscodeshift ./path/to/folder/**/*.js -t ./tools/codemod/templates.js -d -p
请注意,某些 shell 无法识别 **
,您必须首先使用以下命令手动将其打开:
$ shopt -s globstar
我正在创建一个将替换所有实例的转换:
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
文件进行 运行 转换。我需要用我当前的命令更改什么才能使其 select 所有 .js
文件,并且 运行 对所有这些文件进行转换?
如果要运行 对目录中的所有文件进行转换,只需输入目录路径,而不是文件路径。在上面的示例中,执行以下操作:
jscodeshift ./folder -t ./tools/codemod/templates.js -d -p
这将 运行 对所有嵌套的 js 文件进行转换。
frosty 提供的答案将 运行 目录中的所有文件,而不仅仅是 JS 文件。如果你只想 运行 对所有嵌套的 JS 文件进行转换,请使用 **
glob 语法:
jscodeshift ./path/to/folder/**/*.js -t ./tools/codemod/templates.js -d -p
请注意,某些 shell 无法识别 **
,您必须首先使用以下命令手动将其打开:
$ shopt -s globstar