2015-11-13 14 views
20

Sto usando Babel 6 per es2015 e reagisco che richiede babel-preset-es2015 e babel-preset-react.Opzione sconosciuta: ... /. Babelrc.presets

aggiungo la proprietà presets in .babelrc ma mi genera un errore:

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 

Il mio file .babelrc è:

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

posso correre babel src -d lib comando, funziona. Ma se eseguo npm start per eseguire babel tramite package.json, viene visualizzato l'errore.

Penso di poter ignorare l'errore perché l'app è in esecuzione. Ma voglio sapere perché questo errore e non sono sicuro di ciò che colpisce.

mio scripts in 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" 
    }, 

mio 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')); 

risposta

35

ho capito questo problema è causato dalla versione di babel-loader e babel-core.

Nelle package.json le dipendenze sono state dichiarate ^5.3.3 in modo che non vengano aggiornate a 6.x. Cambiarlo in >=5.3.3 o ^6.0.0.

^ significa aggiornare la versione secondaria ma non aggiornare la versione principale.

+0

L'ho visto solo ora, probabilmente perché la 5.4.0 è stata elencata come la versione più recente, che è stata installata quando non ho specificato la versione che volevo. Ha funzionato quando ho installato^6.1.0 – sigurdga

2

Assicurarsi di avere quelle librerie predefinite realmente nella vostra node_modules.

Avevo un messaggio di errore simile ma leggermente diverso. Il motivo era che stavo cercando di usare il preset react per babel ma babel-react-preset mancava dal mio node_modules. Il risultato finale era che Babel stava cercando di utilizzare i contenuti della libreria react come preset.

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

Sfortunatamente, ho i pacchetti preimpostati in 'node_modules'. Posso eseguire 'babel --presets es2015 src -d lib', tutto va bene. L'errore compare solo quando eseguo il webpack –

1

Posso lavorare con babel src --out-dir lib, ma non con npm run XXX. Installa [email protected] CLI globalmente sulla mia macchina, dopo aver installato il progetto babel-cli @ local, può funzionare con npm run.

2

Ho riscontrato questo errore durante il tentativo di creare preact. Risulta che ho avuto un file .babelrc nella directory padre che stava interferendo; dopo averlo rimosso il problema è andato via.

0

In alcuni casi, come il mio, ho installato Babel a livello globale che genera lo stesso errore. È possibile disinstallare Babel prima, quindi installare babel-cli^6.26.0 come parte delle dipendenze, quindi provare a eseguire nuovamente il comando npm start

+0

Questo non fornisce una risposta alla domanda. Una volta che hai [reputazione] sufficiente (https://stackoverflow.com/help/whats-reputation) sarai in grado di [commentare qualsiasi post] (https://stackoverflow.com/help/privileges/comment); invece [fornisci risposte che non richiedono chiarimenti da parte del richiedente] (https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can- i-do-, invece). - [Dalla recensione] (/ recensione/post di bassa qualità/17111089) – dgw

Problemi correlati