webpack生成的这段代码起什么作用?

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)

  }


神不在的星期二
浏览 453回答 1
1回答

隔江千里

看注释第一个是用于 export {aaa, bbb},import {aaa} from 'modules'第二个是用于export default ccc,import ccc from 'modules和modules.exports ={}这两种。babel编译的时候会将export default 编译为export.default,这个跟es6的默认导出其实是不相符的,所以需要判断处理,代码中的// 缩减了// 是es规范么?     是就导出.defaultmodule.__esModule ? return module['default']就是做的这一块。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript