Подтвердить что ты не робот

Неизвестный параметр:.../. Babelrc.presets

Я использую Babel 6 для es2015 и реагирую, который требует babel-preset-es2015 и babel-preset-react.

Я добавляю свойство presets в .babelrc, но он вызывает ошибку:

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 для запуска babel через package.json, появится ошибка.

Я думаю, что могу игнорировать ошибку, потому что приложение работает. Но я хочу знать, почему эта ошибка и не уверен, что она влияет.

My scripts в package.json:

"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'));
4b9b3361

Ответ 1

Я понял, что эта проблема вызвана версией babel-loader и babel-core.

В package.json были указаны зависимости ^5.3.3, поэтому он не будет обновлен до 6.x. Измените его на >=5.3.3 или ^6.0.0.

^ означает обновление дополнительной версии, но не обновление основной версии.

Ответ 2

Убедитесь, что у вас есть эти предварительно настроенные библиотеки на вашем node_modules.

У меня было похожее, но немного другое сообщение об ошибке. Причина в том, что я пытался использовать react preset для 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

Ответ 3

Я столкнулся с этой ошибкой при попытке построить preact. Оказывается, у меня был файл .babelrc в родительском каталоге, который мешал; после удаления проблемы проблема исчезла.

Ответ 4

Я могу работать с babel src --out-dir lib, но не с npm run XXX. Я устанавливаю CLI [email protected] глобально на своей машине, после установки локального проекта babel-cli @, он может работать с npm run.

Ответ 5

В некоторых случаях, таких как мой, у меня есть babel, установленный глобально, который вызывает ту же ошибку. Вы можете сначала удалить babel, а затем установить babel-cli ^ 6.26.0 как часть ваших зависимостей, а затем попробовать запустить команду npm start again