webpack-前置知识

前置知识-node的内置模块path

path模块用于对路径和文件进行处理,
从路径中获取信息
dirname: 获取文件的父文件夹。
basename:获取文件名。
extname: 获取文件拓展名。

 const path = require("path")const fileName = "C://test/a/b/c.txt"//.txtconsole.log(path.extname(fileName))//c.txtconsole.log(path.basename(fileName))//C://test/a/bconsole.log(path.dirname(fileName))

路径的拼接path.join()

如果希望将多个路径进行拼接时,由于不同的操作系统(Mac OS 和Linux的Unix操作系统上使用/来作为文件路径的分割符,window上使用\或 \作为文件的分割符,目前也支持/ )可能使用不同的分隔符,拼接时需要区分,但是使用path.join()就不用考虑操作系统的问题。
与path.resolve()相比path.join()用的比较少

//path.join()方法会将path2路径相对于path1路径进行拼接,得到最终的路径。由于path2是一个相对路径
const path = require("path")
const path1  = "/test/t"
const path2  = "../a/b/c.js"console.log(path.join(path1,path2))
//结果: C://test/a/b\test\a\b\c.js
//path1是一个绝对路径(以/开头),而path2是一个相对路径(以..开头),在拼接时会根据相对路径的规则进行处理。在这种情况下,path2的..表示返回上一级目录,所以最终结果会是"/a/b/c.js"。
//结果中的斜杠符号可能会因为操作系统的不同而有所差异。在Windows系统中,路径分隔符通常是反斜杠\

拼接绝对路径:path.resolve()

  1. 会把一个路径或路径片段的序列解析为一个绝对路径,
console.log(path.resolve("/test/a.js"))
//结果: C:\test\a.js
  1. 给定的路径序列使用右往左被处理的,后面的path会依次被解析,直到构造完成一个绝对路径。
console.log(path.resolve("./a.js","./b.js","/c.js"))
console.log(path.resolve("./a.js","/b.js","./c.js"))
console.log(path.resolve("/a.js","./b.js","./c.js"))
// C:\c.js
// C:\b.js\c.js
// C:\a.js\b.js\c.js
  1. 如果在处理完所有给定的path片段后,还没有生成绝对路径,则使用当前工作目录。
console.log(path.resolve("./a.js","./b.js","./c.js"))
//  C:\Users\28376\Desktop\新建文件夹\a.js\b.js\c.js
  1. 生成的路径被规范化并删除尾部斜杠,零长度的path片段会被忽略。
console.log(path.resolve("/test/a.js/"))
//  C:\test\a.js
console.log(path.resolve("./a.js","","./c.js"))
//C:\Users\28376\Desktop\新建文件夹\a.js\c.js
console.log(path.resolve("./a.js"," ","./c.js"))
// C:\Users\28376\Desktop\新建文件夹\a.js\ \c.js
  1. 如果没有path片段,path.resolve() 将会返回当前工作目录的绝对路径。
    console.log(path.resolve())
    //  C:\Users\28376\Desktop\新建文件夹
    

webpack

webpack的概念

webpack是一个静态的模块化打包工具:
1.最终会把代码打包成静态资源,部署到静态服务器。
2. webpack默认支持各种模块化开发,如ES Module, CommonJS等
3. 可以解决现代前端开发中的各种问题,比如代码的压缩和并,实时监听文件的变化,并映射到浏览器上,提高开发效率,使用一些高级的语法。

需要打包的文件:
1.js将es6转换为es5,将ts转换为js.
2.css模块的加载,less,sass等预处理器的处理。
3.图片img和文字font文件的加载
4.打包html资源文件
5. 处理vue项目的sfc文件(Single File Component,的缩写,)

webpack的安装和使用

webpack的安装分为两个webpack,webpack-cli
webpack:

//通过代码运行,用的很少
const webpack =require(" webpack")
webpack.compile()

webpack-cli:

//命令行的形式,使用较多
webpack --entry

webpack,webpack-cli的关系:
执行webpack命令,会执行node_modules下的.bin目录下的webpack
webpack在执行时是依赖webpack-cli的,如果没有安装会报错
webpack-cli执行时,才是webpack进行编译和打包的过程。
安装webpack的同时还需要安装webpack-cli

npm install webpack webpack-cli -Dnpm install webpack webpack-cli -g
安装后直接运行npx webpack可以看到打包后生成了一个文件,

在这里插入图片描述
入口文件默认就是这里的Index.js文件名是固定的,改成其他的会报错:
在这里插入图片描述
这时候就需要指定打包的文件,即入口entry npx webpack --entry ./src/main.js

在这里插入图片描述
同理文件的出口也是默认的默认是dist/main.js ,如果要修改的话要通过--output-filename指定 npx webpack --entry ./src/main.js --output-filename bundle.js
在这里插入图片描述
如果还要修改打包的文件名output 要通过 --output-path
npx webpack --entry ./src/main.js --output-filename bundle.js --output-path ./build:
在这里插入图片描述
这样敲命令很麻烦,尤其是命令很长时,可以建立一个 webpack.config.js,然后在通过npx webpack运行

module.exports={"entry":"./src/main.js","output":{"filename":"bundle.js","path":"./build"}
}

在这里插入图片描述
可以通过path.resolve('path):
在这里插入图片描述
也可以进一步优化,在不同的操作系统中都没问题,需要使用__dirname获取当前文件所在的路径:

const path =require("path")
module.exports={"entry":"./src/main.js","output":{"filename":"bundle.js","path":path.resolve(__dirname,"./build")}
}

这里的webpack.config.js和入口和出口设置是一样的,文件名固定,如果要修改还要进行额外配置:
在这里插入图片描述
要修改webpack.config.js文件名要通过 --config 指定修改的文件名:
npx webpack --config wk.config.js
在这里插入图片描述

每次运行时都需要敲明了很麻烦,可以在package.json中编写脚本:
在这里插入图片描述

最终版本

使用webpack.config.js编写一些配置:
在这里插入图片描述

使用package.json的脚本执行命令:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/796294.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

安全左移是什么,如何为网络安全建设及运营带来更多可能性

长久以来,网络安全技术产品和市场需求都聚焦于在“右侧”防护,即在各种系统、业务已经投入使用的网络环境外围或边界,检测进出的流量、行为等是不是存在风险,并对其进行管控或调整。 然而事实上,安全风险不仅是“跑”…

【C++】c++11新特性(二)--Lambda函数及function(包装器)

目录 Lambda函数 基本概念 基本语法 lambda 捕获(capture) 1. 不捕获任何变量 2. 按值捕获 3. 按引用捕获 4. 混合捕获 5. 捕获this 指针 包装器 function 基本概念 使用场景 1. 给function对象赋值 2. 作为函数参数和返回值 3. 存储在容器中 4. 绑定成员函数和带…

已解决java.util.zip.DataFormatException: 数据格式异常的正确解决方法,亲测有效!!!

已解决java.util.zip.DataFormatException: 数据格式异常的正确解决方法,亲测有效!!! 目录 问题分析 报错原因 解决思路 解决方法 核实数据的完整性和来源 验证数据是否为有效的ZIP格式 检查与编码相关的问题 正确使用AP…

【数据库(MySQL)基础】以MySQL为例的视图、存储过程与触发器

文章目录 1. 视图1.1 视图创建1.2 视图查询1.3 视图修改1.4 视图删除1.5 视图检查选项1.5.1 cascaded检查选项1.5.1.1 这个选项存在为了避免什么问题?1.5.1.2 怎么利用这个选项1.5.1.3 子视图 1.5.2 local检查选项1.5.2.1 local示例 1.6 视图更新及作用 2. 存储过程…

如何保护大模型API安全

大模型的崛起正在改变着我们对机器学习和人工智能的理解,它们不仅提供了令人惊叹的预测和分析能力,还在各行各业的应用中发挥着重要作用。通过提供 API,用户无需了解底层实现细节,使大型模型能够更好地与用户和应用程序进行交互&a…

C++IO类,输入输出缓冲区,流状态

我们的程序已经使用了很多IO库设施: istream(输入流)类型,提供输入操作。ostream(输出流)类型,提供输出操作。cin,一个istream对象,从标准输入读取数据。写入到标准错误。cout,一个ostream对象&#xff0c…

Windows 下融合使用开源组件进行视频内容分析,shotcut ,autocut 剪辑 whisper智能化编辑双语字幕等

文章大纲 whisperautocut油管 视频分析视频数据下载下载字幕数据开源视频剪辑工具shotcut参考文献学习路径下面以这个黄仁勋访谈视频为例简要介绍分析的步骤 https://youtu.be/lXLBTBBil2Uwhisper https://github.com/openai/whisper提升: 安装如果需要在conda 中使用 ffmpeg …

电商技术揭秘七:搜索引擎中的SEO关键词策略与内容优化技术

文章目录 引言一、关键词策略1.1 关键词研究与选择1. 确定目标受众2. 使用关键词研究工具3. 分析搜索量和竞争程度4. 考虑长尾关键词5. 关键词的商业意图6. 创建关键词列表7. 持续监控和调整 1.2 关键词布局与密度1. 关键词自然分布2. 标题标签的使用3. 首次段落的重要性4. 关键…

C 语言中的 end, _end 符号

使用 man 3 end 可以看到相关符号的解释 这些符号不是在 C 语言文件和头文件中定义的,它们是 ld 在链接所有 .o 文件的时候自己添加的。 end 和 _end 的地址,就是最终程序的堆的起始地址 要打印它们的话,一个样例程序在下面: …

【opencv】示例-asift.cpp 对两张图片之间进行仿射特征比对

#include <opencv2/core.hpp> // 包含OpenCV核心功能的头文件 #include <opencv2/imgproc.hpp> // 包含OpenCV图像处理功能的头文件 #include <opencv2/features2d.hpp> // 包含OpenCV特征检测相关功能的头文件 #include <opencv2/highgui.hpp> // 包含…

关于阿里云云数据库自动扩缩容和自动SQL优化的20道面试题

1. 请解释阿里云云数据库自动扩缩容的概念及其工作原理。 阿里云云数据库自动扩缩容是一种基于数据库实例的实时性能数据&#xff0c;能够发现流量异常并提供合理的数据库规格建议和磁盘容量建议的功能。其工作原理如下&#xff1a; 性能监控&#xff1a;系统会实时监控数据库…

Java线程亲和实战

环境&#xff1a;Linux version 5.4.0-1084-aws (builddlcy02-amd64-044) (gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04)) #91~18.04.1-Ubuntu SMP Sun Aug 14 01:24:43 UTC 2022 JDK: 1.8.0_241 CPU分配是如何工作的&#xff1f; 如果您有或提供了一个&#xff0c;该库…

sqlmap(五)

一、进行文件读写操作 1.1 前提条件 高权限 目录有读写权限 secure_file_priv " " 1.2 测试目标 第一步&#xff1a;用抓包的方式获取请求测试站点的数据包 可以使用Burpsuite 第二步&#xff1a;将抓到的数据包&#xff0c;保存到sqlmap目录下的a.txt 第三步&am…

FPGA和ARM学习那个比较好

FPGA和ARM是两种不同的技术&#xff0c;具有不同的应用领域和学习难度。以下是对两者进行比较的一些建议&#xff1a; 1. 应用领域&#xff1a;FPGA主要用于数字电路设计和硬件加速器开发&#xff0c;可在实时系统、信号处理、嵌入式系统等方面发挥重要作用。ARM则是一种处理器…

C++的vector类(二):vector类的实际OJ应用

1、只出现一次的数字 2、杨辉三角 3、删除有序数组中的重复项 4、只出现一次的数字 II 5、只出现一次的数字 III 6、数组中出现次数超过一半的数字 7、电话号码的字母组合 ~over~

从FasterTransformer源码解读开始了解大模型(1.1)一个decoder-only的模型长啥样

从FasterTransformer源码解读开始了解大模型&#xff08;1.1&#xff09;一个decoder-only的模型长啥样 写在前面的话 对于一个没有接触过LLM的初学者来说&#xff0c;如果想要了解一个大模型的推理框架&#xff0c;首先应该知道大模型整个的工作原理是怎样的&#xff0c;知道…

了解自动化机器学习 AutoML

&#x1f349; CSDN 叶庭云&#xff1a;https://yetingyun.blog.csdn.net/ 自动化机器学习&#xff08;AutoML&#xff09;概述 自动化机器学习&#xff08;AutoML&#xff09;旨在自动化机器学习模型的开发流程&#xff0c;通过简化或去除需要专业知识的复杂步骤&#xff0c;…

CSS面试题常用知识总结day03

大家好我是没钱的君子下流坯&#xff0c;用自己的话解释自己的知识 前端行业下坡路&#xff0c;甚至可说前端已死&#xff0c;我还想在前段行业在干下去&#xff0c;所以从新开始储备自己的知识。 从CSS——>Javascript——>VUE2——>Vuex、VueRouter、webpack——>…

Stale Diffusion、Drag Your Noise、PhysReaction、CityGaussian

本文首发于公众号&#xff1a;机器感知 Stale Diffusion、Drag Your Noise、PhysReaction、CityGaussian Drag Your Noise: Interactive Point-based Editing via Diffusion Semantic Propagation Point-based interactive editing serves as an essential tool to compleme…

vite打包失败 - out of memory

在做项目时&#xff0c;随着需求的不断增加&#xff0c;我们的代码文件会越来越大&#xff0c;但是在打包时&#xff0c;在 Node 中通过 JavaScript 使用内存的大小却是有限制的。于是&#xff0c;今天打算部署代码时&#xff0c;报错了: <--- JS stacktrace ---> JS st…