Ho installato Babel CLI (versione 6) utilizzando npm install --global babel-cli
. Quindi installo il preset di risposta usando npm install --global babel-preset-react
.Errore: Impossibile trovare il preset "react" quando installato utilizzando npm install --global babel-preset-react ma funziona senza flag globale
Ho poi l'installazione il file .babelrc
nella directory di progetto per
{
"presets": ["react"]
}
Quando si tenta di costruire un file JSX non riesce con
Error: Couldn't find preset "react"
at OptionManager.mergePresets (/usr/local/lib/node_modules/babel-cli/node_modules/babel-core/lib/transformation/file/options/option-manager.js:310:17)
at OptionManager.mergeOptions (/usr/local/lib/node_modules/babel-cli/node_modules/babel-core/lib/transformation/file/options/option-manager.js:270:12)
at OptionManager.addConfig (/usr/local/lib/node_modules/babel-cli/node_modules/babel-core/lib/transformation/file/options/option-manager.js:206:10)
at OptionManager.findConfigs (/usr/local/lib/node_modules/babel-cli/node_modules/babel-core/lib/transformation/file/options/option-manager.js:347:16)
at OptionManager.init (/usr/local/lib/node_modules/babel-cli/node_modules/babel-core/lib/transformation/file/options/option-manager.js:392:12)
at File.initOptions (/usr/local/lib/node_modules/babel-cli/node_modules/babel-core/lib/transformation/file/index.js:191:75)
at new File (/usr/local/lib/node_modules/babel-cli/node_modules/babel-core/lib/transformation/file/index.js:122:22)
at Pipeline.transform (/usr/local/lib/node_modules/babel-cli/node_modules/babel-core/lib/transformation/pipeline.js:42:16)
at transform (/usr/local/lib/node_modules/babel-cli/lib/babel/util.js:53:22)
at Object.compile (/usr/local/lib/node_modules/babel-cli/lib/babel/util.js:62:12)
Se installo il preset senza bandiera --global (cioè installa in node_modules/folder localmente) quindi la build funziona. Come posso impostare Babel per funzionare con un preset globale?
Mi sono imbattuto in questo stesso errore quando cercavo di eseguire babel da Python come processo separato. Ha funzionato correttamente sulla console, quindi ho fatto un piccolo debugging. Ho aggiunto console.log (dirname) alla riga 305 di options-manager.js e ho scoperto che la directory di lavoro corrente doveva essere la directory del progetto. Spero che questo ti aiuti. – CookieOfFortune
Qual è il punto di utilizzare i preset globali? –
@CookieOfFortune: non penso che sia necessario trovarsi nella directory del progetto. Ho installato il modulo localmente in un'altra cartella e ho creato il progetto da lì. funziona fintanto che la directory di lavoro corrente ha il modulo. – KaranK