原生页面引入Webpack打包JS
Webpack简介
- 概述:
- Webpack是一个现代JavaScript应用程序的静态模块打包器。
- 它将应用程序中的每个文件视为一个模块,并通过配置规则来解析这些模块之间的依赖关系,最终将其打包成一个或多个浏览器可以执行的文件。
- 动态加载(Code Splitting):
- Webpack支持代码分割,允许开发者将代码分割成多个块(chunk),并在需要时按需加载。
- 这可以通过使用动态
import()语法来实现,它返回一个Promise对象,用于处理模块加载成功或失败的情况。
- 配置与加载器:
- Webpack的配置文件通常命名为
webpack.config.js,其中包含了入口点、输出文件、加载器、插件等配置信息。 - 加载器(loader)用于转换不同类型的模块为Webpack能够处理的模块。例如,
babel-loader用于将ES6+代码转换为浏览器兼容的ES5代码,css-loader用于处理CSS文件等。
- Webpack的配置文件通常命名为
- 插件系统:
- Webpack的插件系统允许开发者通过监听Webpack构建过程中的事件来执行特定操作。
- 例如,
HtmlWebpackPlugin插件可以自动生成HTML文件并注入打包后的JS/CSS文件。
- 热更新(Hot Module Replacement, HMR):
- Webpack支持热更新功能,当源代码发生变化时,Webpack会自动重新编译受影响的模块,并替换旧模块。
- 这使得开发者可以在不刷新页面的情况下实时看到代码的变化,提高了开发效率。
打包Javascript
在原生HTML中配置一个Webpack项目通常意味着你需要手动引入Webpack打包后的输出文件(例如bundle.js或main.js),而不是让Webpack直接处理HTML文件。以下是一个基本的步骤指南,帮助你在原生HTML中配置Webpack项目:
-
初始化项目:
- 创建一个新的文件夹作为你的项目根目录。
- 在该文件夹中打开终端或命令提示符。
- 运行
npm init -y来初始化一个新的npm项目,这将创建一个package.json文件。
-
安装Webpack及其CLI:
- 运行
npm install --save-dev webpack webpack-cli来安装Webpack和Webpack CLI。
- 运行
-
创建项目结构:
- 在项目根目录下创建一个
src文件夹,用于存放源代码。 - 在
src文件夹中创建一个index.js文件,作为Webpack的入口点。 - 在项目根目录下创建一个
dist文件夹,用于存放Webpack打包后的输出文件。 - 在项目根目录下创建一个
index.html文件,作为你的HTML模板。
- 在项目根目录下创建一个
-
配置Webpack:
- 在项目根目录下创建一个
webpack.config.js文件,用于配置Webpack。
- 在项目根目录下创建一个
webpack.config.js示例:
const path = require('path'); module.exports = { entry: './src/index.js', // 入口文件 output: { filename: 'bundle.js', // 输出文件名 path: path.resolve(__dirname, 'dist') // 输出目录 }, module: { rules: [ // 在这里添加加载器配置(如Babel、CSS等) ] }, // 其他Webpack配置选项...
};
-
编写源代码:
- 在
src/index.js中编写你的JavaScript代码。
- 在
-
编写HTML模板:
- 在
index.html中编写你的HTML代码,并在<body>标签的底部引入Webpack打包后的输出文件(例如<script src="dist/bundle.js"></script>)。
- 在
-
打包项目:
- 在项目根目录下的
package.json文件中添加一个构建脚本,例如"build": "webpack"。 - 运行
npm run build来打包项目。Webpack将根据webpack.config.js中的配置将src/index.js及其依赖打包成一个bundle.js文件,并输出到dist文件夹中。
- 在项目根目录下的
-
查看结果:
- 打开
index.html文件(你可以直接在浏览器中打开,或者使用一个简单的HTTP服务器如live-server)。 - 确保页面能够正确加载并显示你编写的JavaScript代码的效果。
- 打开
请注意,如果你想要Webpack自动处理HTML文件(例如自动注入打包后的脚本标签),你可以使用html-webpack-plugin插件。但是,在这个基本的例子中,我们手动在HTML文件中引入了打包后的输出文件,以展示如何在原生HTML中配置Webpack项目。
页面引入Javascript
//bundle.js
// 导出一个函数
export function greet(name) { return `Hello, ${name}!`;
}
---------------------------------------------------
<!DOCTYPE html>
<html lang="en">
<head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Dynamic Import Example</title> <script> // 定义一个函数来动态加载模块 function loadModule() { // 使用动态import()语法异步加载模块 import('./bundle.js') .then(module => { // 模块加载成功,使用导入的函数 const message = module.greet('World'); console.log(message); // 输出: Hello, World! }) .catch(error => { // 模块加载失败,处理错误 console.error('Failed to load module:', error); }); } // 在页面加载完成后调用loadModule函数 window.onload = loadModule; </script>
</head>
<body> <h1>Dynamic Import Example</h1>
</body>
</html>
相关文章:
原生页面引入Webpack打包JS
Webpack简介 概述: Webpack是一个现代JavaScript应用程序的静态模块打包器。它将应用程序中的每个文件视为一个模块,并通过配置规则来解析这些模块之间的依赖关系,最终将其打包成一个或多个浏览器可以执行的文件。动态加载(Code …...
健康之路押注医药零售:毛利率下滑亏损扩大,医疗咨询人次大幅减少
《港湾商业观察》黄懿 2024年9月13日,健康之路股份有限公司(下称“健康之路”)再次递表港交所,建银国际为独家保荐人。健康之路国内运营主体为健康之路(中国)信息技术有限公司和福建健康之路信息技术有限公…...
【人工智能-初级】第7章 聚类算法K-Means:理论讲解与代码示例
文章目录 一、K-Means聚类简介二、K-Means 聚类的工作原理2.1 初始化簇中心2.2 分配簇标签2.3 更新簇中心2.4 迭代重复2.5 K-Means 算法的目标三、K-Means 聚类的优缺点3.1 优点3.2 缺点四、K 值的选择五、Python 实现 K-Means 聚类5.1 导入必要的库5.2 生成数据集并进行可视化…...
HOT 100 技巧题(136/169/75/31/287)
136. 只出现一次的数字 技巧类型题目,通过异或运算实现 169. 多数元素 三种常见解法:1. 哈希2. 排序3. 投票法 75. 颜色分类 单指针 两次遍历:第一次遍历把所有0都交换到前面,记录最后一个0的位置index,第二次遍…...
什么是时间戳?怎么获取?有什么用?
在 JavaScript 中,时间戳通常表示为自 1970 年 1 月 1 日 00:00:00 UTC 以来的毫秒数。我们可以使用 Date 对象来获取当前时间的时间戳,或者将特定的日期转换为时间戳。在JavaScript中,时间戳通常以毫秒为单位表示。 如何获取时间戳 在Java…...
LeetCode:459重复的子字符串
给定一个非空的字符串 s ,检查是否可以通过由它的一个子串重复多次构成。 示例 1: 输入: s "abab" 输出: true 解释: 可由子串 "ab" 重复两次构成。示例 2: 输入: s "aba" 输出: false示例 3: 输入: s "abcabcabcabc" 输…...
【含开题报告+文档+PPT+源码】基于SSM的旅游与自然保护平台开发与实现
开题报告 围场县拥有丰富的自然景观和野生动植物资源,同时面临着旅游业发展和自然保护之间的平衡问题,通过强调自然保护,这个平台可以教育游客如何尊重和保护当地的生态环境。同时,平台还可以提供关于生态保护的信息,…...
【ANTs】医疗影像工具ANTs多种安装方式教程
介绍ANTs的几种简单的安装教程 基于Releases的安装 Github上选择适配自己操作系统的安装包,链接: link 一般使用最新版本。这里官方操作说明,支持Ubuntu、MacOS、CentOS,但是windows有安装包,不知道怎么用。。。 下载后有两个文件夹,bin和lib,bin里面长这样(图示wind…...
想要音频里的人声,怎么把音频里的人声和音乐分开?
在音频处理领域,将音频中的人声和音乐分开是一个常见需求,尤其对于音乐制作、影视后期以及个人娱乐应用来说,这种分离技术显得尤为重要。随着科技的发展,现在已经有多种方法可以实现这一目的。 一、使用专业音频处理软件 市面上有…...
python代码中通过pymobiledevice3访问iOS沙盒目录获取app日志
【背景】 在进行业务操作过程中,即在app上的一些操作,在日志中会有对应的节点,例如,下面是查看设备实时视频过程对应的一些关键节点: 1、TxDeviceAwakeLogicHelper:wakeStart deviceId CxD2BA11000xxxx …...
Spring AOP 使用方法总结
AOP切面编程的最佳应用场景 记录日志性能监控事务管理处理异常数据验证,验证传入参数的正确性(一般不用这个方法做,而是用拦截器) spring提供了以下注解供开发者使用,编写AOP程序 Aspect 申明切面Pointcut 切点&#…...
LeetCode 每日一题 2024/10/21-2024/10/27
记录了初步解题思路 以及本地实现代码;并不一定为最优 也希望大家能一起探讨 一起进步 目录 10/21 910. 最小差值 II10/22 3184. 构成整天的下标对数目 I10/23 3185. 构成整天的下标对数目 II10/24 3175. 找到连续赢 K 场比赛的第一位玩家10/25 3180. 执行操作可获得…...
不到1500元的I卡可以玩转3A大作吗?撼与科技Intel Arc A750显卡游戏性能实
一、前言 还记得2022年10月的时候,英特尔发布了Arc A750和A770显卡,和此前所发布的DG1、A380不同,这两张显卡可以说是真正意义上的游戏显卡。不知不觉间,两年已经过去了,在这两年期间,英特尔不仅在积极地打…...
STK与MATLAB互联——仿真导航卫星与地面用户间距离和仰角参数
文章目录 构建GPS星座创建单个PRN的GPS卫星创建GPS星座,并为其添加发射机 北斗星座构建搭建低轨铱星星座构建一颗轨道高度为800km/1000km/1200km的低轨卫星构建一颗轨道高度为800km/1000km/1200km的低轨卫星建立地面站,可见性分析确定地面站坐标分析单颗…...
js面试问题笔记(一)
一.热门js面试 1.简述同步和异步的区别? 同步: 浏览器访问服务器请求,用户看到页面刷新 ,重新发请求,等请求完,页面刷新,新内容出现,用户看到新内容,进行下一步操作 异步: 浏览器访问服务器请求,用户正常操作,浏览器后端进行请求,等请求完,页面不刷新,新内容也会出现,用户看到…...
pip 和 pipx 的主要区别?
特性pippipx用途用于安装Python库或命令行应用程序,可以安装带entry points的库专门用于安装和管理Python命令行工具,每个工具都在隔离的虚拟环境中运行虚拟环境不自动创建虚拟环境,需要手动使用 venv 或 virtualenv 创建自动为每个安装的工具…...
4457M数字示波器
_XLT新利通_ 4457M数字示波器 带宽500MHz到3GHz 4457M系列数字示波器产品,包含4457DM/EM/FM/GM四个产品型号,模拟通道数4、8个,带宽500MHz到3GHz,最高采样率10GSa/s,垂直分辨率8bit,最大存储深度2Gpts。…...
【永中软件-注册/登录安全分析报告】
前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞…...
Tomcat作为web的优缺点
文章目录 优点缺点 优点 开源:Tomcat是Apache软件基金会的一个项目,这意味着它是免费且开放源代码的。这为开发者提供了高度的自由度来修改和扩展其功能。 轻量级:与一些全功能的Java EE应用服务器(如IBM WebSphere, Oracle WebL…...
conda虚拟环境中安装cuda方法、遇到的问题
conda虚拟环境中安装cuda方法、遇到的问题 文章目录 conda虚拟环境中安装cuda方法、遇到的问题conda虚拟环境中安装cudacuda.h和cuda_runtime.hpytorch运行时的CUDA版本其他问题检查包冲突nvcc -V和nvidia-smi显示的版本不一致cuda路径 conda虚拟环境中安装cuda 参考文章&…...
Java环境搭建后系统响应变慢怎么办
Java环境建设后,系统响应缓慢,通常不是由于Java本身的“缓慢”系统,而是由于配置不当或资源占用不合理造成的。关键是调查具体的影响因素,并进行有针对性的优化。以下是常见的性能影响因素和实际建议。1.JVM内存配置不合理JVM默认…...
ChatGPT实战:如何用思维链推理提升数学解题准确率(附Prompt模板)
ChatGPT实战:如何用思维链推理提升数学解题准确率(附Prompt模板) 数学问题解决一直是大型语言模型(LLM)面临的重大挑战。传统方法往往直接输出最终答案,缺乏中间推理过程,导致准确率难以提升。本…...
2026程序员破局指南:大模型技能是未来,收藏这份转型路线图
引言 曾几何时,程序员被誉为“21世纪最高薪的职业之一”,是无数人向往的“金饭碗”。然而,步入2026年,这个曾经风光无限的职业似乎正经历一场前所未有的“寒冬”。裁员潮、降薪、AI冲击……种种挑战接踵而至,让许多程…...
HUNYUAN-MT 7B翻译终端轻量部署方案:在低显存GPU上的优化与调参
HUNYUAN-MT 7B翻译终端轻量部署方案:在低显存GPU上的优化与调参 你是不是也遇到过这种情况?看到一个大语言模型翻译效果不错,兴冲冲地想部署到自己的服务器上试试,结果一看显存要求——动辄几十个G,瞬间就劝退了。手头…...
Windows HEIC缩略图终极解决方案:让苹果照片在PC上瞬间预览
Windows HEIC缩略图终极解决方案:让苹果照片在PC上瞬间预览 【免费下载链接】windows-heic-thumbnails Enable Windows Explorer to display thumbnails for HEIC files 项目地址: https://gitcode.com/gh_mirrors/wi/windows-heic-thumbnails 还在为Windows…...
从伪随机到真破解:LCG算法在CTF中的6种攻击姿势
伪随机数的数学陷阱:LCG算法在CTF竞赛中的攻防实战 1. 线性同余生成器的数学本质 线性同余生成器(LCG)作为最基础的伪随机数生成算法,其核心公式仅包含三个参数和一次模运算: Xn1 (a * Xn b) mod m这个看似简单的递推…...
1.6 面对攻击的网络 | 计算机网络的安全防线
在我们享受网络带来的便利时,一张无形的 “威胁之网” 也在悄然蔓延。从个人信息泄露到关键基础设施瘫痪,网络攻击早已成为现代社会的核心挑战。《计算机网络:自顶向下方法》在开篇就引入这一主题,正是为了让我们在理解 “如何通信…...
DWIN DMT48270C043_06WT触控屏开发避坑指南:从硬件选型到固件下载全流程
DWIN DMT48270C043_06WT触控屏开发实战手册:硬件选型到固件下载的深度解析 第一次接触DWIN的DMT48270C043_06WT触控屏时,我对着满桌的线材和跳帽陷入了沉思——这哪里是开发套件,分明就是一场硬件解谜游戏。作为一款在工业控制、智能家居等领…...
Trelby 剧本写作软件:架构解析与配置指南
Trelby 剧本写作软件:架构解析与配置指南 【免费下载链接】trelby The free, multiplatform, feature-rich screenwriting program! 项目地址: https://gitcode.com/gh_mirrors/tr/trelby 项目核心架构解析 如何理解 Trelby 的模块化设计? Trel…...
DVWA文件包含漏洞实战:从Low到Impossible的四种防御策略解析
DVWA文件包含漏洞实战:从Low到Impossible的四种防御策略解析 在网络安全领域,文件包含漏洞(File Inclusion Vulnerability)一直是Web应用中最常见的高危漏洞之一。DVWA(Damn Vulnerable Web Application)作…...
