千家信息网

JavaScript中怎么使用import和require打包

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,本篇内容主要讲解"JavaScript中怎么使用import和require打包",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"JavaScript中怎么使
千家信息网最后更新 2025年12月02日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安全错误 数据库的锁怎样保障安全 星际公民选哪个服务器比较好 基础网络安全攻防技术 微信自动发朋友圈软件开发 软件开发中心吕楠楠 如何将网页登录的数据库导出 纪检人员网络安全 x86服务器的raid卡通用吗 幻塔手机不一样服务器能联机吗 中移动网络技术要求 瀑布模型软件开发实力 高济互联网科技有限公司招聘 南京小程序软件开发流程 软件开发催款的艺术 常用的文件检索数据库有 服务器有时获取不到cookie 下载找不到服务器怎么办 c 如何将数据保存到数据库 服务器的机箱构架 深岩银河搜不到朋友服务器 甘南州网络安全知识 网络安全防诈骗主题班会总结 深圳市哈希网络技术有限公司 阿里云服务器管理器 棋牌软件开发游戏代理平台 软件开发属于蓝领么 梦幻西游服务器文件夹 游戏怎么上服务器 各地区各部门网络安全 浙江正规软件开发哪家实惠 吕梁软件开发招聘
0