CygwinでBabelを使おうとしてハマった - 「cannot write output format!」
初投稿です。
最近フロントエンドを始め、JavaScriptを勉強してます。
ReactJSを入門しようと、@teradonburiさんの「ReactJSで作る今時のSPA入門(基本編)」をやってみたところ、自分の環境のせいでどハマりしてしまいました。
表示されたエラーメッセージを検索しても解決策には至らなかったため、残しておきます。
環境
Windows 10
mintty 2.8.5 (x86_64-pc-cygwin)
問題
Babelでjsxファイルをトランスパイルしようとすると以下のエラーが表示される。
$ babel --plugins transform-react-jsx test.jsx
babel: cannot write output format!
Open Babel 2.3.2 -- Sep 27 2017 -- 16:47:36
Usage: babel [-i<input-type>] <name> [-o<output-type>] <name>
Try -H option for more information.
最初はプラグインなどが正しくインストールできていないんだろうかと思っていたが、package.json見てみるとちゃんと入ってそう。
{
"name": "reactjs",
"version": "1.0.0",
"main": "index.js",
"license": "MIT",
"devDependencies": {
"babel-cli": "^6.26.0",
"babel-plugin-transform-react-jsx": "^6.24.1"
}
}
原因
npm(もしくはyarn)でインストールしたBabelではないBabelにパスが通っていた。
$ which babel
/usr/bin/babel
えぇぇ~。どうやらCygwinのインストール時に紛れ込んでいた様子。
$ ./node_modules/.bin/babel --plugins transform-react-jsx test.jsx
ReactDOM.render(React.createElement(
'h1',
null,
'Hello, world!'
), document.getElementById('root'));
node_modulesに入ってるbabelを指定してあげたらちゃんと動いた。
教訓
当たり前のことだけど、まずはバージョン確認すべきですね。
よく見たらエラーメッセージにもバージョン出てきてたし、package.jsonとバージョン違うのが一目瞭然。
ムダに時間を費やしてしまった。。。
Author And Source
この問題について(CygwinでBabelを使おうとしてハマった - 「cannot write output format!」), 我々は、より多くの情報をここで見つけました https://qiita.com/mura-masa/items/4798ac25feb297fd7f96著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .