我有麻烦,包括mapbox和@mapbox/mapbox在webpack捆绑的应用程序中绘制。我发现mapbox应该包含在dist版本中,所以我需要这样的条件:require('mapbox-gl/dist/mapbox-gl.js')
(对于dist也是如此),它在dev中工作得很好,但是在生产构建时崩溃,我们会得到诸如e is not defined
之类的错误。
需要配置吗?
发布于 2018-05-19 08:42:28
好的,我找到了解决办法,张贴在不同的问题上。首先,为了简单起见,我们可以使用mapbox和mapbox的常规要求:
const mapboxgl = require('mapbox-gl');
const MapboxDraw = require('@mapbox/mapbox-gl-draw');
我们只需要向webpack指定它们的构建版本,因此我们添加了一个别名:
resolve: {
...
alias: {
'mapbox-gl': 'mapbox-gl/dist/mapbox-gl.js',
'@mapbox/mapbox-gl-draw': '@mapbox/mapbox-gl-draw/dist/mapbox-gl-draw.js',
}
}
但是运行时的错误是因为我在webpack配置中使用了Uglify。因此,在我们使用dist版本时已经被缩小的mapbox包再次通过了uglify。为了避免这种情况,我们需要告诉webpack不要处理mapbox包,因此webpack配置中有以下规则:
module: {
...
noParse: /(mapbox-gl)\.js$/
}
https://stackoverflow.com/questions/50423419
复制相似问题