千家信息网

JavaScript中怎么使用import和require打包

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,本篇内容主要讲解"JavaScript中怎么使用import和require打包",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"JavaScript中怎么使
千家信息网最后更新 2026年11月03日JavaScript中怎么使用import和require打包

本篇内容主要讲解"JavaScript中怎么使用import和require打包",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"JavaScript中怎么使用import和require打包"吧!

项目结构

我们在 index.html 文件中写入最基础的html代码,它在这里目的在于引入打包后的js文件(这里我们先把之后打包后的js文件命名为 bundle.js ,之后我们还会详细讲述)。

     sample Project    

我们在 Greeter.js 中定义一个返回包含问候信息的 html 元素的函数,并依据CommonJS规范导出这个函数为一个模块:

// Greeter.jsexports.greet= function() { var greet = document.createElement('div'); greet.textContent = "Hi there and greetings!"; return greet;};exports.USER_INFO = "userInfo";

main.js 文件中我们写入下述代码,用以把 Greeter模块 返回的节点插入页面。

//main.js  let {greeter,USER_INFO} =require('./Greeter.js');console.log(USER_INFO);document.querySelector("#root").appendChild(greeter());

使用webpack打包后:

(function(modules){     var installedModules = {};  function __webpack_require__(moduleId) {    if (installedModules[moduleId]) {      return installedModules[moduleId].exports;    }    var module = installedModules[moduleId] = {      i: moduleId,      l: false,      exports: {}    };    modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);    module.l = true;    return module.exports;  }  __webpack_require__.m = modules;  __webpack_require__.c = installedModules;  __webpack_require__.d = function(exports, name, getter) {    if (!__webpack_require__.o(exports, name)) {      Object.defineProperty(exports, name, {        configurable: false,        enumerable: true,        get: getter      });    }  };  __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;  };  __webpack_require__.o = function(object, property) {    return Object.prototype.hasOwnProperty.call(object, property);  };  __webpack_require__.p = "";  return __webpack_require__(__webpack_require__.s = 0);})([(function(module, exports, __webpack_require__) {  //main.js  let {    greeter,    USER_INFO  } = __webpack_require__(1);  console.log(USER_INFO);  document.querySelector("#root").appendChild(greeter());}),(function(module, exports) {  // Greeter.js  exports.greet = function() {    var greet = document.createElement('div');    greet.textContent = "Hi there and greetings!";    return greet;  };  exports.USER_INFO = "userInfo";})]);

首先最为层是包裹着立即执行函数(加粗的内容),参数是一个数组,数组中每一项是对应的模块,每个模块包裹在 (function(module, exports, __webpack_require__) {//模块内容 });

立即执行函数运行执行 return __webpack_require__(__webpack_require__.s = 0);

也就是执行传入数组中的第一个模块main.js

将运行后的每个模块挂载到installedModules = {}上,当下个需要这个模块直接返回当前模块,不在运行代码块了!

接下来将require改为import看看打包后的如何实现

我们将 Greeter.js的信息改为如下 :

// Greeter.jsexport default function() { var greet = document.createElement('div'); greet.textContent = "Hi there and greetings!"; return greet;};export const USER_INFO = "userInfo";main.js 文件中的代码,修改后//main.js import greet,{USER_INFO} from './Greeter.js';console.log(USER_INFO);document.querySelector("#root").appendChild(greet());

然后我们再次打包:

(function(modules) {  var installedModules = {};  function __webpack_require__(moduleId) {    if (installedModules[moduleId]) {      return installedModules[moduleId].exports;    }    var module = installedModules[moduleId] = {      i: moduleId,      l: false,      exports: {}    };    modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);    module.l = true;    return module.exports;  }  __webpack_require__.m = modules;  __webpack_require__.c = installedModules;  __webpack_require__.d = function(exports, name, getter) {    if (!__webpack_require__.o(exports, name)) {      Object.defineProperty(exports, name, {        configurable: false,        enumerable: true,        get: getter      });    }  };  __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;  };  __webpack_require__.o = function(object, property) {    return Object.prototype.hasOwnProperty.call(object, property);  };  __webpack_require__.p = "";  return __webpack_require__(__webpack_require__.s = 0);})([(function(module, __webpack_exports__, __webpack_require__) {  "use strict";  Object.defineProperty(__webpack_exports__, "__esModule", {    value: true  });  var __WEBPACK_IMPORTED_MODULE_0__Greeter_js__ = __webpack_require__(1);  //main.js  console.log(__WEBPACK_IMPORTED_MODULE_0__Greeter_js__["a"]);  document.querySelector("#root").appendChild(Object(__WEBPACK_IMPORTED_MODULE_0__Greeter_js__["b"])());}),(function(module, __webpack_exports__, __webpack_require__) {  "use strict";  __webpack_exports__["b"] = (function() {    var greet = document.createElement('div');    greet.textContent = "Hi there and greetings!";    return greet;  });;  const USER_INFO = "userInfo";  __webpack_exports__["a"] = USER_INFO;})]);

到此,相信大家对"JavaScript中怎么使用import和require打包"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

模块 文件 代码 内容 函数 数组 运行 信息 包裹 学习 实用 更深 接下来 也就是 元素 兴趣 再次 参数 基础 实用性 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 上海挚品互联网科技有限公司 广州大一互联网络科技有限公司 金融科技还是互联网 科技企业和互联网企业 高科技与互联网 平安科技 互联网 互联网 的科技创新 互联网科技公司有哪些 互联网 新科技 深圳前海聚择互联网科技有限公司 南山科技园互联网公司有哪些 宁夏科技产业互联网案例 语蝶互联网科技有限公司 健康食品互联网创新科技园项目 允成互联网科技有限公司融资 科技赋能视角下互联网保险发展 浙南科技城互联网大厦招聘 厦门江牛科技互联网 江苏互联网科技小贷 高科技和互联网的现代国家 互联网科技企业 紫鲸互联网科技 西安互联网科技公司 苏州大垚互联网科技 衡水科技产业互联网平台 云创客互联网科技公司 国大互联网教育科技有限公司工作 互联网营销推广黑科技 北京天晋互联网科技有限公司 重庆科技产业互联网有哪些
0