2015-11-13 22 views
20

Używam Babel 6 dla es2015 i reaguję, który wymaga babel-preset-es2015 i babel-preset-react.Nieznana opcja: ... /. Babelrc.presets

dodać właściwość presets w .babelrc ale rzucać mi błąd:

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 

Mój plik .babelrc jest:

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

mogę uruchomić komendę babel src -d lib, to działa. Ale jeśli uruchomię npm start, aby uruchomić babel przez package.json, pojawia się błąd.

Myślę, że mogę zignorować błąd, ponieważ aplikacja działa. Ale chcę wiedzieć, dlaczego ten błąd i nie wiem, co to ma wpływ.

My scripts w package.json jest:

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

My entry.js jest

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

Odpowiedz

35

zorientowali się ten problem jest spowodowany przez wersją babel-loader i babel-core.

W zależności określono ^5.3.3, więc nie zaktualizuje się do 6.x. Zmień go na >=5.3.3 lub ^6.0.0.

^ oznacza aktualizację wersji dodatkowej, ale nie uaktualnia wersji głównej.

+0

Widziałem to właśnie teraz, prawdopodobnie dlatego, że wersja 5.4.0 została wymieniona jako najnowsza wersja, która została zainstalowana, gdy nie określiłem żądanej wersji. Działa, gdy zainstalowałem^6.1.0 – sigurdga

2

Upewnij się, że masz te gotowych bibliotek faktycznie w node_modules.

Podobny, ale nieco inny komunikat o błędzie. Powodem było to, że próbowałem użyć ustawienia react dla babel, ale brakowało babel-react-preset z mojego node_modules. W rezultacie Babel próbował użyć zawartości biblioteki react jako ustawienia wstępnego.

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

Niestety, mam gotowe pakiety w 'node_modules'. Mogę uruchomić 'babel --presets es2015 src -d lib', wszystko jest w porządku. Błąd pojawia się tylko wtedy, gdy uruchomię pakiet sieciowy –

1

Mogę pracować z babel src --out-dir lib, ale nie z npm run XXX. Po zainstalowaniu B[email protected] CLI instaluję globalnie na moim komputerze, po zainstalowaniu babel-cli @ locally project, może on współpracować z npm run.

2

Wystąpił ten błąd podczas próby zbudowania preact. Okazuje się, że miałem plik .babelrc w katalogu nadrzędnym, który się wtrącał; po usunięciu problem zniknął.

0

W niektórych przypadkach, takich jak mój, mam zainstalowany babel na całym świecie, który rzuca ten sam błąd. Możesz najpierw odinstalować babel, a następnie zainstalować babel-cli^6.26.0 jako część twoich zależności, a następnie spróbuj uruchomić komendę npm start again

+0

To nie daje odpowiedzi na pytanie. Gdy masz już wystarczającą [reputację] (https://stackoverflow.com/help/whats-reputation), będziesz mógł [komentować dowolny wpis] (https://stackoverflow.com/help/privileges/comment); zamiast tego [dostarczaj odpowiedzi, które nie wymagają wyjaśnień od pytającego] (https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can- i-do-zamiast). - [Z recenzji] (/ opinia/niskiej jakości-posts/17111089) – dgw

Powiązane problemy