鍍金池/ 問答/HTML/ webpack生成的這段代碼起什么作用?

webpack生成的這段代碼起什么作用?

webpack生成的這段代碼起什么作用?什么時(shí)候會(huì)用到?

// 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)
  }
回答
編輯回答
赱丅呿

看注釋第一個(gè)是用于 export {aaa, bbb},import {aaa} from 'modules'
第二個(gè)是用于export default ccc,import ccc from 'modulesmodules.exports ={}這兩種。
babel編譯的時(shí)候會(huì)將export default 編譯為export.default,這個(gè)跟es6的默認(rèn)導(dǎo)出其實(shí)是不相符的,所以需要判斷處理,代碼中的

// 縮減了
// 是es規(guī)范么?     是就導(dǎo)出.default
module.__esModule ? return module['default']

就是做的這一塊。

2018年1月10日 12:35