2017-01-21 29 views
3

的WebPack @ 2.2 的WebPack合併@ 2.4的WebPack配置沒有出口對象

我使用的WebPack合併做一個聰明的開發或生產配置。

我的啓動腳本看起來像

} 
"scripts": { 
    "start": "webpack --env=production & node start.js", 
    "dev": "webpack-dev-server --env=dev", 
}, 

和我的WebPack,配置是這樣的:

const webpack = require('webpack') 
const ExtractTextPlugin = require('extract-text-webpack-plugin') 
const CompressionPlugin = require('compression-webpack-plugin') 
const webpackMerge = require('webpack-merge') 

const baseConfig = function(env) { 
    return { 
    output: { 
     path: '/public/', 
     filename: 'index.js', 
     publicPath: '/public/', 
    }, 
    module: { 
     rules: [ 
     { 
      test: /\.js$/, 
      exclude: /node_modules/, 
      use: ['babel-loader'], 
     }, 
     { 
      test: /\.css$/, 
      loader: ExtractTextPlugin.extract({ 
      fallbackLoader: "style-loader", 
      loader: "css-loader", 
      publicPath: "/public/", 
      }), 
     }, 
     ], 
    }, 
    resolve: { 
     extensions: ['.js', '.css'], 
    }, 
    plugins: [ 
     new webpack.DefinePlugin({ 
     'process.env': { NODE_ENV: JSON.stringify(env) }, 
     }), 
     new ExtractTextPlugin({ 
     filename: "bundle.css", 
     disable: false, 
     allChunks: true, 
     }), 
    ], 
    } 
} 

module.exports = function(env) { 
    return webpackMerge(baseConfig(env), env === 'dev' ? { 
    devtool: 'cheap-module-source-map', 
    entry: [ 
     'react-hot-loader/patch', 
     'webpack-dev-server/client?http://localhost:8080', 
     'webpack/hot/only-dev-server', 
     './app/index.js', 
    ], 
    devServer: { 
     hot: true, 
     publicPath: '/public/', 
     proxy: { 
     "/api/**": "http://localhost:3333", 
     "/auth/**": "http://localhost:3333", 
     }, 
    }, 
    plugins: [ 
     new webpack.HotModuleReplacementPlugin(), 
     new webpack.NamedModulesPlugin(), 
    ], 
    } : { 
    devtool: 'inline-source-map', 
    entry: [ 
     './app/index.js', 
    ], 
    plugins: [ 
     new webpack.optimize.UglifyJsPlugin({ 
     comments: false, 
     }), 
     new webpack.LoaderOptionsPlugin({ 
     minimize: true, 
     }), 
     new webpack.optimize.AggressiveMergingPlugin(), 
     new CompressionPlugin({ 
     asset: "[path].gz[query]", 
     algorithm: "gzip", 
     test: /\.js$|\.css$|\.html$/, 
     threshold: 10240, 
     minRatio: 0.8, 
     }), 
    ], 
    }) 
} 

的WebPack本地編譯成功,但是當我嘗試將它部署到Heroku的,在papertrail輸出如下所示:

> webpack --env=production & node start.js 
Config did not export an object. 

任何想法?

+0

這是您用於生產的'webpack'配置嗎?它看起來像一個'dev'配置。 –

+0

有一個基本配置,然後是一個三元運算符,如果它是生產環境,則使用第二個對象。 –

回答

1

我有同樣的問題,我忘了裝的WebPack開發服務器:
npm install --save-dev webpack-dev-server

希望它能幫助!

+1

我遇到完全相同的錯誤,但我已經安裝了webpack-dev-server。 當我嘗試爲開發和生產創建多個配置時出現問題 – trevorgk

相關問題