web-dev-qa-db-ja.com

不明なオプション:... /。babelrc.presets

私はes2015にBabel 6を使用していますが、babel-preset-es2015babel-preset-reactを必要とする反応があります。

.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を実行してpackage.json経由でbabelを実行すると、エラーが表示されます。

アプリが実行されるため、エラーを無視できると思います。しかし、私はこのエラーの理由を知り、それが何に影響するかを知りたいです。

package.jsonscriptsは次のとおりです。

"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'));
23
Brick Yang

この問題はbabel-loaderbabel-coreのバージョンが原因であることがわかりました。

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

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

39
Brick Yang

preactをビルドしようとしたときにこのエラーに遭遇しました。親ディレクトリに干渉している.babelrcファイルがありました。削除すると問題はなくなりました。

2
Jaiden Mispy

これらのプリセットライブラリが実際にnode_modules

同様のエラーメッセージが少しありました。その理由は、reactプリセットをbabelに使用しようとしていたが、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
2
Juha Syrjälä

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

1
echizen

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

0