webpack生成的这段代码起什么作用?什么时候会用到?
// define getter function for harmony exports
__webpack_require__.d = function (exports, name, getter) {
if (!__webpack_require__.o(exports, name)) {
Object.defineProperty(exports, name, {
configurable: false,
enumerable: true,
get: getter
})
}
}
// getDefaultExport function for compatibility with non-harmony modules
__webpack_require__.n = function (module) {
var getter = module && module.__esModule
? function getDefault () { return module['default'] }
: function getModuleExports () { return module }
__webpack_require__.d(getter, 'a', getter)
return getter
}
// Object.prototype.hasOwnProperty.call
__webpack_require__.o = function (object, property) {
return Object.prototype.hasOwnProperty.call(object, property)
}
看注释第一个是用于
export {aaa, bbb}
,import {aaa} from 'modules'
第二个是用于
export default ccc
,import ccc from 'modules
和modules.exports ={}
这两种。babel编译的时候会将
export default
编译为export.default
,这个跟es6的默认导出其实是不相符的,所以需要判断处理,代码中的就是做的这一块。