OpenLayers v3与Webpack

您好,我目前正在使用OpenLayers v3与Webpack。 当我不使用UglifyJS时,它工作正常。 但是,当我添加我的uglifyJSconfiguration的时候,它不会再编译了

我的UglifyJSconfiguration

new webpack.optimize.UglifyJsPlugin({ minimize: true, sourceMap: false, compress: { warnings: false, sequences: true, dead_code: true, conditionals: true, booleans: true, unused: true, if_return: true, join_vars: true, drop_console: true } }), 

我得到这个错误

 from UglifyJs RangeError: Maximum call stack size exceeded 

我正在使用dist/ol.js文件。

任何想法如何解决这个问题?

这是我如何加载我的webpack项目中的ol3:

webpack.config.js:

 ... resolve: { alias: { openlayers3: "openlayers/dist/ol.js", }, }, plugins: [ new webpack.ProvidePlugin({ ol: "openlayers3", }), ] ... 

ProvidePlugin加载模块并使其在您的应用程序中全局可用。 你不必在你的js文件中inputol3。

https://webpack.github.io/docs/list-of-plugins.html#provideplugin

在这里有同样的问题。 使用CommonsChunkPlugin将openlayers移动到自己的块中,然后忽略UglifyJsPlugin中的块。

项:

 entry: { vendor: Object.keys(packageDotJson.dependencies), openlayers: ['openlayers'], app: './src/index.jsx' } 

CommonsChunkPlugin:

 new webpack.optimize.CommonsChunkPlugin({ names: ["openlayers", "vendor"], minChunks: Infinity, filename: "[name].[hash].js" }), 

UglifyJsPlugin:

 new webpack.optimize.UglifyJsPlugin({ compress: { warnings: false }, exclude: 'openlayers' }), 

然后使用HtmlWebpackPlugin包含在html模板中:

 <% for (var chunk in htmlWebpackPlugin.files.chunks) { %> <script src="<%=htmlWebpackPlugin.files.chunks[chunk].entry %>"></script> <% } %>