2017-04-13 1 views
1

Wir verwenden das Webpack mit dem babel-loader Plugin, um ES für eine Weile zu transpilieren. für unsere Entwicklungsumgebung, sieht unsere Konfigurationsdatei wie folgt aus:babel-loader: einen Eintrag mit dem Namen app.js übersetzen?

module.exports = { 
    entry: { 
    // When I change the below to app2.js, it's no longer transpiled 
    app: path.resolve(__dirname, 'client', 'app.js'), 
    }, 
    module: { 
    loaders: [ 
     { 
     exclude: /node_modules/, 
     loader: 'babel', 
     test: /\.js$/, 
     }, 
     { 
     test: /\.s?css$/, 
     loader: ExtractTextPlugin.extract('style-loader', sassLoaders.join('!')), 
     }, 
    ], 
    }, 
    output: { 
    path: path.resolve(__dirname, 'build'), 
    publicPath: 'http://localhost:8080/', 
    filename: '[name].js', 
    }, 
    plugins: [ 
    new ExtractTextPlugin('[name].css'), 
    new webpack.DefinePlugin(processEnvPlugin), 
    ], 
    postcss: [ 
    autoprefixer({ 
     browsers: ['last 2 versions'], 
    }), 
    ], 
    resolve: { 
    extensions: ['', '.js', '.scss', '.css'], 
    root: [__dirname], 
    }, 
}; 

ich diese laufen mit webpack-dev-server --inline --config=webpack-dev.config.js --content-base='client'.

Problem ist, wenn ich app.js in Eintrag zu app2.js oder irgendetwas anderes ändere, wird die Datei immer noch vom Webpack-Server (auf 8080 ausgeführt), aber nicht mehr transpiliert.

Gibt es etwas Einzigartiges/Magisches über den Namen app.js in Bezug auf Babel-Loader? Praktisch jedes Beispiel Tutorial, das ich finden kann, einschließlich der Webpack-Dokumente, verwenden die app.js Konvention, aber offensichtlich sieht es so aus, als ob der Name sein könnte.

Antwort

1

Sind Sie sicher, dass es nicht funktioniert und dass Sie die richtige Datei überprüfen (app.js, immer)? Wenn durch "die Datei [...] nicht mehr transpiliert wird", meinen Sie, dass die Datei mit dem Namen app2.js nicht transpiliert wird, wenn Sie es erhalten, erwartet Verhalten von wie Ihre Konfiguration aussieht.

Nach Ihrer Konfiguration transpiled Datei wird immer app.js genannt werden, unabhängig von Ihrer Eingabedatei:

filename: '[name].js', // => translates to "app.js" 

[name] durch den Namen des Blocks ersetzt, die „App“ :

entry: { 
    app: ... 
}, 

Um Verwechslungen zwischen dem Eingang und der Ausgabe zu vermeiden, können Sie Ihre Klumpen anders oder einfach einen fest codierten Namen für den Ausgang, wie ‚bundle.js‘ verwenden nennen

Verwandte Themen