2016-10-06 9 views
5

Hi Ich frage mich nur, ob es einen Grund gibt, eine .babelrc-Datei zum Speichern der Voreinstellung zu haben, anstatt die Voreinstellungen in der Datei webpack.config zu haben (abgesehen davon, dass ich die babelrc-Datei wiederverwenden kann) in einem anderen Projekt). Ich hatte eine Anwendung, die ordnungsgemäß mit einer .babelrc Datei wie folgt funktioniert:Webpack Babel - über .babelrc

{ 
    "presets": ["es2015", "stage-0","react"] 
} 

Ich zog dann die App auf eine andere webpack Struktur ohne .babelrc Datei:

//webpack.config.js 
module: { 
    loaders: [ 
     { 
     test: /(\.js|\.jsx)$/, 
     exclude: /(node_modules)/, 
     loader: 'babel', 
     query: { presets: ['es2015', 'stage-0', 'react'] } 
     }, 

Seltsamerweise die App jetzt hört auf, mit dem Problem zu arbeiten, das jsx analysiert und "Schlüsselwörter" usw. in meiner server.js Akte "importiert". Es funktioniert nur, wenn ich die babelrc-Datei wieder hinzufüge. Kann mir jemand bitte erklären, warum es nur mit babelrc file funktioniert?

+0

Es ist wie Ihre server.js Datei klingt, ist nicht mit webpack aber unter Berufung auf babel-node/babel-register? – riscarrott

+0

die server.js-Datei verwendet Webpack.config – mtangula

+0

Ich weiß eigentlich nicht, was du meinst, aber Sie könnten auf etwas wie ich eine Zeile benötigen ('babel-core/register ') in der Server-Datei, aber gleichzeitig wird die webpack.config-Datei verknüpft (dh importiert) – mtangula

Antwort

0

Ihren Lader in Ihrem webpack.config.js-babel-loader ändern und davor müssen Sie sie

npm install babel-loader babel-core babel-preset-es2015 --save-dev 

auch sicher, dass Sie babel-preset-react installiert haben

Befehl

webpack.config.js machen mit installieren

module: { 
    loaders: [ 
     { 
     test: /\.js?$/, 
     exclude: /(node_modules|bower_components)/, 
     loader: 'babel-loader', 
     query: { 
      presets: ['react', 'es2015', 'stage-0'], 
      plugins: ['react-html-attrs', 'transform-decorators-legacy'], 
     } 
     } 
    ] 
    }, 
+0

nein, leider ist das nicht die antwort, da es immer noch nichts tut. Ich habe andere Apps, die Babel wie die oben genannten und nicht Babel-Loader verwenden und sie arbeiten immer noch. – mtangula

+0

Überprüfen Sie das Update, das ist, wie ich das Webpack-Modul verwende und es funktioniert für mich. lassen Sie mich wissen, wenn es jetzt funktioniert –

+0

nein, ich habe diese Plugins hinzugefügt, aber es besteht immer noch darauf, dass ich in die .babelrc-Datei. – mtangula

0

In Ihrem webpack Config stattdessen die query Möglichkeit, vorbei Sie Setup babel Optionen mit dem babel Schlüsselwort können:

babel: { 
    babelrc: false, 
    presets: ['react', 'es2015', 'stage-0'], 
    plugins: ['react-html-attrs', 'transform-decorators-legacy'] 
}, 
modules: { 
    loaders: [ 
    ... 
    ] 
} 

Dies scheint das Problem für mich festgelegt zu haben. Leider weiß ich nicht genau, warum das funktioniert :-(

Sie können einige der babel-loader-Tests sehen verwenden, dies zu Setup-Optionen: https://github.com/babel/babel-loader/blob/master/test/options.test.js#L70

Verwandte Themen