2017-04-13 20 views
1

我們一直在使用webpack和babel-loader插件來轉換ES一段時間。爲我們的發展環境,我們的配置文件看起來是這樣的:babel-loader:transpile一個沒有命名爲app.js的條目?

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], 
    }, 
}; 

webpack-dev-server --inline --config=webpack-dev.config.js --content-base='client'運行此。

問題是,如果我更改app.js輸入app2.js或其他任何內容,該文件仍由webpack服務器(運行於8080)提供服務,但不再進行轉發。

在babel-loader方面,有什麼獨特/神奇的名字app.js?實際上,我可以找到的每個示例教程(包括webpack文檔)都使用app.js慣例,但顯然它看起來像名稱應該是可以是任何東西。

回答

1

你確定它不工作,並且你正在檢查正確的文件(app.js,總是)?如果通過「該文件不再被轉錄」,則意味着名稱爲app2.js的文件在獲取時未被轉儲,這是您的配置看起來像預期的行爲。

根據您的配置文件transpiled將始終被命名爲app.js,無論您輸入文件:

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

[name]是由大塊的名稱,這是「應用程序」所取代:

entry: { 
    app: ... 
}, 

爲避免你的輸入和輸出的方寸之間,您可以採用不同命名塊,或者乾脆使用硬編碼名稱爲輸出中,像「bundle.js」

相關問題