web-dev-qa-db-fra.com

Option inconnue: ... /. Babelrc.presets

J'utilise Babel 6 pour es2015 et réagis, ce qui nécessite babel-preset-es2015 et babel-preset-react.

J'ajoute la propriété presets dans .babelrc mais cela me renvoie une erreur:

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

Mon fichier .babelrc est:

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

Je peux exécuter la commande babel src -d lib, cela fonctionne. Mais si je lance npm start pour exécuter la babel via package.json, l’erreur apparaît.

Je pense que je peux ignorer l'erreur parce que l'application s'exécute. Mais je veux savoir pourquoi cette erreur et ne pas savoir ce qu’elle affecte.

Ma scripts dans package.json est:

"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"
  },

Mon entry.js est

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

J'ai pensé que ce problème était dû à la version de babel-loader et babel-core

Dans le package.json, les dépendances ont été déclarées ^5.3.3 et ne seront donc pas mises à jour vers 6.x. Changez-le en >=5.3.3 ou ^6.0.0.

^ signifie mettre à niveau la version secondaire mais pas la version principale.

39
Brick Yang

J'ai rencontré cette erreur en essayant de construire preact. Il s'avère que j'avais un fichier .babelrc dans le répertoire parent qui interférait; après l'avoir enlevé, le problème a disparu.

2
Jaiden Mispy

Assurez-vous que vous avez réellement ces bibliothèques de préconfiguration dans votre node_modules.

J'ai eu un message d'erreur similaire mais légèrement différent. La raison en était que j'essayais d'utiliser le paramètre prédéfini react pour babel mais que babel-react-preset était absent de mon node_modules. Le résultat final était que babel essayait d'utiliser le contenu de la bibliothèque react en tant que préréglage.

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ä

Je peux travailler avec babel src --out-dir lib, mais pas avec npm run XXX. J'installe [email protected] CLI globalement sur ma machine. Après avoir installé babel-cli @ localement, cela peut fonctionner avec npm run.

1
echizen

Dans certains cas, comme le mien, j'ai installé babel dans le monde entier, ce qui génère la même erreur. Vous pouvez d’abord désinstaller Babel puis installer babel-cli ^ 6.26.0 dans le cadre de vos dépendances, puis essayez d’exécuter à nouveau la commande npm start

0
Frederick Rosales