我正试图将CesiumJS与汇总捆绑在一起。我想我可以做这样的重要工作:
import Cesium from 'cesium/Build/Cesium/Cesium.js'
使用以下rollup.config.js文件。我得到了一个bundle.js,但是当我运行它时,我会得到很多错误:
未定义的TypeError:无法读取bundle.js:formatted:102314上未定义的属性“文档”
function() {
!function(e) {
var t = this || eval("this")
, r = t.document // it is complaining on this line
, i = t.navigator
, n = t.jQuery
, o = t.JSON;
rollup.config.js
import resolve from 'rollup-plugin-node-resolve'
import commonjs from 'rollup-plugin-commonjs'
import uglify from 'rollup-plugin-uglify'
import { minify } from 'uglify-es'
export default {
input: 'scripts/Main.js',
output: {
file: 'dist/bundle.js',
format: 'es',
},
"options": {
sourceMap: 'inline',
output: {
format: 'es'
}
},
plugins: [
resolve({
jsnext: true,
main: true,
browser: true,
}),
commonjs(),
uglify({}, minify)
]
}
发布于 2017-11-23 19:01:14
ES模块总是处于严格模式--通过扩展,当某些东西导入汇总并转换为ES模块时,它也在严格模式下运行。
在严格模式下,函数中的this
值是undefined
,除非它是( a)作为方法调用,或者( b)使用call
或apply
显式设置。
这是关于汇总的预期行为,从技术上讲,它并不是铯的一个bug,但我建议向它们提出一个问题,看看它们是否可以使用更现代的方法访问全局变量。在2017年,真的没有理由依赖非严格的行为!
作为最后的手段,您可以将this || eval("this")
(或this||(0,eval)("this")
,在小型化版本中是这样)替换为window
。
如果在进行更改后有许多其他错误,则可能不可能将铯包含在您的包中,并且您需要将它作为外部模块保存。
https://stackoverflow.com/questions/47463907
复制