我正在努力找出为什么不使用Object.values
的垫片。错误监控不断引发如下问题:
Object.values is not a function. (In 'Object.values(L)', 'Object.values' is undefined)
问题在于我认为我为不支持Object.values
的浏览器提供了垫片:
// index.js
import 'es6-shim';
// ...
if (!Object.values) {
require('object.values').shim();
}
global.App = {
...components,
...directives,
...mixins,
...filters,
...utils,
};
global.Vue = Vue;
global.ComponentsBootstrap = function ComponentsBootstrap(Vue) {
if (process.env.NODE_ENV === 'production') {
Raven
.config('http://...')
.addPlugin(RavenVue, Vue)
.install()
;
}
const { provideComponents, provideDirectives, provideFilters } = global.App;
Vue.use(provideComponents);
Vue.use(provideDirectives);
Vue.use(provideFilters);
};
代码的使用方式如下:
<script src="dist/components/app.js"></script>
<script>
ComponentsBootstrap(Vue);
// include other components that use `Object.values()`
</script>
是因为在function ComponentsBootstrap
内没有调用require('object.values')。shim()吗?
答案 0 :(得分:0)
在IE11中运行的某些ES6代码上使用es6-shim作为polyfill时遇到了同样的问题。听起来像es6-shim几乎没有通过es7-shim解决的间隙,例如https://github.com/es-shims/es7-shim