import和require的区别

这里是在浏览器环境下而谈的

import和require都不能直接运行在浏览器

require是CommonJS的一部分

而import是ES2015的新规范

首先说说webpack通过babel转义这两个东西后的语法

babel转义区别

    Object.defineProperty(exports, "__esModule", {
        value: true
    });
    exports.test3 = undefined;

    var _test = __webpack_require__(6);

    var _test2 = _interopRequireDefault(_test);

    function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

这代码应该在webpack编译

一般你在代码中有直接export而非modules.export的话

就会有

    Object.defineProperty(exports, "__esModule", {
        value: true
    });

而如果使用import 而非 require的话就会有了

    var _test = __webpack_require__(6);

    var _test2 = _interopRequireDefault(_test);

    function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

//如果使用require的话就只有

    var _test = __webpack_require__(6);

这两个其实使用差不多

循环加载相关

虽然http://es6.ruanyifeng.com/#docs/module中说加载方式和import 和require不一样 前者为索引,后者为拷贝

但笔者觉得这个export货module.exports有关系而已,和这个是没关系的

当然,我和阮一峰老师说的环境不一样

他是站着ES6的角度上看的

而我是站着编译可运行在浏览器的ES6说的

© 404mzk all right reserved,powered by Gitbook该文件修订时间: 2017-04-09 09:07:59

results matching ""

    No results matching ""