2015-11-13 22 views
20

私はBabel 6をes2015に使用しており、反応はbabel-preset-es2015babel-preset-reactが必要です。 不明なオプション:... /。babelrc.presets

は、私が .babelrcpresetsプロパティを追加しますが、それは私にエラーをスロー:

ERROR in ./src/client/entry.js 
Module build failed: ReferenceError: [BABEL] /Users/brick/Dropbox/learncoding/node.js/isomorphic/src/client/entry.js: Unknown option: /Users/brick/Dropbox/learncoding/node.js/isomorphic/.babelrc.presets 
    at Logger.error (/Users/brick/Dropbox/learncoding/node.js/isomorphic/node_modules/babel-core/lib/transformation/file/logger.js:58:11) 
    at OptionManager.mergeOptions (/Users/brick/Dropbox/learncoding/node.js/isomorphic/node_modules/babel-core/lib/transformation/file/options/option-manager.js:126:29) 
    at OptionManager.addConfig (/Users/brick/Dropbox/learncoding/node.js/isomorphic/node_modules/babel-core/lib/transformation/file/options/option-manager.js:107:10) 
    at OptionManager.findConfigs (/Users/brick/Dropbox/learncoding/node.js/isomorphic/node_modules/babel-core/lib/transformation/file/options/option-manager.js:168:35) 
    at OptionManager.init (/Users/brick/Dropbox/learncoding/node.js/isomorphic/node_modules/babel-core/lib/transformation/file/options/option-manager.js:229:12) 
    at File.initOptions (/Users/brick/Dropbox/learncoding/node.js/isomorphic/node_modules/babel-core/lib/transformation/file/index.js:147:75) 
    at new File (/Users/brick/Dropbox/learncoding/node.js/isomorphic/node_modules/babel-core/lib/transformation/file/index.js:137:22) 
    at Pipeline.transform (/Users/brick/Dropbox/learncoding/node.js/isomorphic/node_modules/babel-core/lib/transformation/pipeline.js:164:16) 
    at transpile (/Users/brick/Dropbox/learncoding/node.js/isomorphic/node_modules/babel-loader/index.js:12:22) 
    at Object.module.exports (/Users/brick/Dropbox/learncoding/node.js/isomorphic/node_modules/babel-loader/index.js:69:12) 
@ multi main 

.babelrcファイルは次のとおりです。

{ 
    "presets": [ 
    "es2015", 
    "react" 
    ] 
} 

私はbabel src -d libコマンドを実行することができ、それが動作します。しかしnpm startを実行してbabelpackage.json経由で実行すると、エラーが表示されます。

アプリが実行されているため、エラーを無視できると思います。しかし、私はこのエラーがなぜ影響を受けているのかわかりません。

package.jsonでの私のscriptsは次のとおりです。

"scripts": { 
    "test": "echo \"Error: no test specified\" && exit 1", 
    "clean": "rm -rf lib", 
    "build": "npm run clean && /usr/local/bin/babel src -d lib --experimental", 
    "server": "nodemon lib/server/server", 
    "dev-server": "node lib/server/webpack", 
    "watch-js": "/usr/local/bin/babel src -d lib --experimental -w", 
    "start": "npm run watch-js & npm run dev-server & npm run server" 
    }, 

entry.js

import React from "react"; 
import Router from "react-router"; 
import ReactDOM from "react-dom"; 
import routes from "./routes"; 
import DataWrapper from './DataWrapper'; 
import createBrowserHistory from 'history/lib/createBrowserHistory'; 

let history = createBrowserHistory(); 
var data = JSON.parse(document.querySelector('#data').innerHTML); 
ReactDOM.render(<DataWrapper data={data}><Router history = {history}>{routes}</Router></DataWrapper>, document.querySelector('#app')); 

答えて

35

私は、この問題はbabel-loaderbabel-coreのバージョンによって引き起こされる考え出しました。

package.jsonでは、依存関係は^5.3.3と記載されているため、6.xには更新されません。それを>=5.3.3または^6.0.0に変更してください。

^は、サブバージョンをアップグレードしますが、メインバージョンはアップグレードしないことを意味します。

+0

5.4.0が最新バージョンとしてリストされていて、私が望むバージョンを指定しなかったときにインストールされている可能性があります。^6.1をインストールしたときにうまくいった。0 – sigurdga

2

では、あなたが実際にあなたのnode_modulesでこれらのプリセットのライブラリを持っていることを確認します。

私は似ていますが少し違うエラーメッセージがありました。その理由は、reactプリセットを使用しようとしましたが、babel-react-presetが私のnode_modulesにありませんでした。最終結果は、babelがreactのコンテンツをプリセットとして使用しようとしていたためです。

ERROR in ./ui/js/myproject.js 
Module build failed: ReferenceError: [BABEL] /home/jsyrjala/myproject/ui/js/myproject.js: Unknown option: /home/jsyrjala/myproject/node_modules/react/react.js.Children 
    at Logger.error (/home/jsyrjala/myproject/node_modules/babel-core/lib/transformation/file/logger.js:43:11) 
    at OptionManager.mergeOptions (/home/jsyrjala/myproject/node_modules/babel-core/lib/transformation/file/options/option-manager.js:270:18) 
    at OptionManager.mergePresets (/home/jsyrjala/myproject/node_modules/babel-core/lib/transformation/file/options/option-manager.js:333:16) 
    at OptionManager.mergeOptions (/home/jsyrjala/myproject/node_modules/babel 
+0

残念ながら、私は 'node_modules'にプリセットパッケージを持っています。私は 'babel --presets es2015 src -d lib'を実行することができます。このエラーは、webpackを実行すると表示されます –

1

私はbabel src --out-dir libで動作しますが、npm run XXXでは動作しません。私はbabel-cli @ localプロジェクトをインストールした後、私のマシンに[email protected] CLIをグローバルにインストールします。npm runで動作します。

2

preactをビルドしようとするとこのエラーが発生しました。私は、妨害していた親ディレクトリの.babelrcファイルを持っていました。それを取り除いた後、問題はなくなった。

0

私のような場合には、同じエラーをスローするバベルがグローバルにインストールされています。最初にbabelをアンインストールしてから、依存関係の一部としてbabel-cli^6.26.0をインストールしてから、再度npm startコマンドを実行してみてください。

+0

これは質問に対する答えを提供しません。十分な[評判](https://stackoverflow.com/help/whats-reputation)があれば、[投稿にコメントする]ことができます(https://stackoverflow.com/help/privileges/comment)。代わりに、[質問者からの明確化を必要としない回答を提供する](https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-c​​an- i-do-代わりに)。 - [レビューから](/レビュー/低品質の投稿/ 17111089) – dgw

関連する問題