我在index.js中引入了“ core-js / modules / es.object.keys”,并且在打包过程中会提示未解决的依赖项。打包的文件不包含keys方法,而是由require,define引入。如果浏览器不支持这两种方法,则调用Object.keys将报告错误。
那我应该怎么做才能在结果文件中获取Object.key的polyfill代码。
我的Index.js文件
import keys from 'core-js/modules/es.object.keys'
export { keys }
这是我的汇总配置文件
{
input: 'src/index.js',
output: {
file: 'lib/index.js',
format: 'umd',
name: 'MtUtils'
},
plugins: [resolve(), commonjs()]
}
打包结果
;(function(global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
? factory(exports, require('core-js/modules/es.object.keys'))
: typeof define === 'function' && define.amd
? define(['exports', 'core-js/modules/es.object.keys'], factory)
: ((global = global || self),
factory((global.MtUtils = {}), global.es_object_keys))
})(this, function(exports, es_object_keys) {
'use strict'
es_object_keys =
es_object_keys && es_object_keys.hasOwnProperty('default')
? es_object_keys['default']
: es_object_keys
exports.keys = es_object_keys
Object.defineProperty(exports, '__esModule', { value: true })
})
我希望打包的文件直接包含键的polyfill代码,而不是通过require或define引入。这里的最终代码是以下代码,因此Object.keys不可用。
factory((global.MtUtils = {}), global.es_object_keys))