reactjs

複数ファイルに書かれてる React.PropTypes を PropTypes へ変換

今更感あるけども。

このやり方での依存

~/react-codemodとなるように置いたとします。

コマンド

こんだけ。

ag --js -l React.PropTypes | \
xargs -I@ npx jscodeshift -t ~/react-codemod/transforms/React-PropTypes-to-prop-types.js @
# import {Component, PropTypes} from 'react'; みたいな場合
ag --js -l ', PropTypes}' | \
xargs -I@ npx jscodeshift -t ~/react-codemod/transforms/React-PropTypes-to-prop-types.js @
# Time elapsed: 5.044seconds 
# npx: installed 273 in 26.297s
# Processing 1 files... 
# Spawning 1 workers...
# Sending 1 files to free worker...
# All done. 
# Results: 
# 0 errors
# 0 unmodified
# 0 skipped
# 1 ok
# :
# :

ag(the_silver_searcher)--js-lで、React.PropTypesと書かれたファイル名一覧を取得して、変換処理に渡してます。

jscodeshift -tへ渡すパスはこの辺に色々書かれてます。


ただnpx使うとめっっさ遅い。変換するファイルが多いならやっぱりグローバルインストールが良さそうです。

npm i -g jscodeshift

agjs -l React.PropTypes | \
xargs -I@ jscodeshift -t ~/test/react-codemod/transforms/React-PropTypes-to-prop-types.js @