vscode使用webpack打包

article/2025/9/24 13:32:02

vscode使用webpack打包

    • 下载webpack
    • 初始化项目
    • 打包 .js文件
    • 打包.js+.css
    • webpack全局安装与局部安装

webpack作用就是将多个不同的.js文件或者.css文件打包为一个文件,减少请求量

有大佬的帖子写的很详细,各种资源的打包方式都有:

https://blog.csdn.net/chen4565/article/details/118093586

下载webpack

首先在项目路径的终端下载webpack两个插件,并全局部署

npm install -g webpack webpack-cli

还可以-v查看以下版本号

初始化项目

这里测试打包用的初始化项目为两个简单的方法,最后被main.js引用
common.js:

//直接在方法前面加上export关键字,相当于直接公开方法了
exports.info= function getList(str){document.write(str) //在浏览器进行输出
}

utils.js

exports.add=function (a,b){return a+b;
}

main.js

const common= require('./common')
const utils= require('./utiles')
common.info('hello'+utils.add(1,5))

在初始化项目后的根目录下添加webpack.config.js配置文件:

const path = require('path') // 引用path模块
module.exports = {  // 这里是commrnt.js语法// 入口文件entry:"./src/main.js",// 打包后的出口文件output:{// 输出的路径  是绝对路径(导入path模块) 这里是用node来做的path:path.resolve(__dirname,'build'),// 输出的文件名称filename:'build.js',},// 使用开发模式打包mode:"development"
}
npm安装时-S -D作用及区别:-S 即--save(保存)包名会被注册在package.json的dependencies里面,在生产环境下这个包的依赖依然存在-D 即--dev(生产)包名会被注册在package.json的devDependencies里面,仅在开发环境下存在的包用-D,如babel,sass-loader这些解析器打包是在npm上运行命令, 一般来说你在配置完成 webpack.config.js 后,你打包时执行的命令是webpack ,但你也可以执行 npm run build 来进行打包,如何实现: 在package.json中的scripts下多加一行 "build": "webpack" ,就可以使用 npm run build他们的区别:在终端直接执行webpack命令,使用的是全局安装的webpack,当在package.js中定义了scripts时, 其包含了webpack命令,那么使用的是局部的webpack 运行命令开发环境: webpack ./src/index.js -o ./build/build.js --mode=development生产环境: webpack ./src/index.js -o ./build/build.js --mode=production添加能使css一起打包的插件: npm i css-loader style-loader -D添加能使scss一起打包的插件: npm install sass-loader node-sass webpack -D  因为你刚刚下载过 css-loader style-loader所以不用再次下载了添加能使html一起打包的插件: npm i html-webpack-plugin -D添加能使图片打包的插件: npm i url-loader file-loader -D添加能使html中图片打包的插件: npm i html-loader -D添加能使浏览器自动更新(刷新)的插件: npm i webpack-dev-server -D

打包 .js文件

最后在在项目根目录中使用命令 webpack 直接打包即可,最后的文件树如下:
在这里插入图片描述

然后可以测试一下打包结果
根目录中创建一个01.html文件,然后引入打包后的.js文件:

<script src="./build/build.js"></script>

最后打开看一下就好,out:hello6

打包.js+.css

webpack本身只能处理js模块,如果要处理其他类型的文件,就需要使用loader进行转化
Loader可以理解为模块和资源的转换器
首先需要安装loader插件,css-loader是将css装载到JavaScript,style-loader是将JavaScript识别css文件

npm i css-loader style-loader -D

然后创建一个.css文件,并引入到原本的main.js文件中
可以使用require(‘文件路径’)直接引入
接下来在原本的webpack.config.js配置文件中添加一部分内容,这里我直接写添加之后的配置文件整体了:

const path = require('path') // 引用path模块
module.exports = {  // 这里是commrnt.js语法// 入口文件entry:"./src/main.js",// 打包后的出口文件output:{// 输出的路径  是绝对路径(导入path模块) 这里是用node来做的path:path.resolve(__dirname,'build'),// 输出的文件名称filename:'build.js',},//包含css文件的打包module:{rules:[{test:/\.css$/,//打包规则应用到以.css结尾的文件上use:['style-locader','css-loader']}]},// 使用开发模式打包mode:"development"
}

最后还是webpack一下:
在这里插入图片描述

webpack全局安装与局部安装

可以配置项目的npm运行命令,修改package.json文件,在scripts调试标签中添加"XXX": “webpack”,如下:

"scripts": {"...""dev": "webpack"},

然后打包的时候直接输入npm run dev就自动执行了webpack

在终端直接执行webpack命令,使用的是全局安装的webpack,
当在package.js中定义了scripts时, 其包含了webpack命令,那么使用的是局部的webpack

为什么全局安装还要本地安装?
仅仅全局安装够吗?
1.在js实例代码中,默认下node.js会在NODE_PATH和目前js所在项目下的node_modules文件夹下去寻找模块,因此,如果只是全局安装,不能直接通过require()的方式去引用模块,需要手动解决包路径的配置问题,当然你也可以复制全局安装的node_modules文件夹到项目下,还有办法可以选择将环境变量的NODE_PATH设置为C:\Program Files\nodejs。

2.对于包的更新不好管理,可能你需要为每个包重新命名,如gulp@3.8.1、gulp@3.9.1…,为了区别不同项目使用指定的包,保证模块之间的相互依赖(这块下面会介绍),区别每个项目正常运行。

因此,不推荐只全局安装。

本地安装的重要性
最早的node.js/npm实际上是全局的,包括现在还兼容NODE_PATH,但是不能支持全局多版本,于是nodejs团队改成本地安装的方法可能就是为了保证不同版本包之间的相互依赖,什么意思呢,举个例子wpdemo组件中相互依赖的包就有很多个
其中依赖包的指定版本号如下,不可轻易去修改,因为不同版本包对应依赖包的版本的功能有所差别,如果修改指定的版本来运行wpdemo,就可能会编译出错等bug。
在这里插入图片描述

依赖
再举个例子:

包版本为:A(0.0.1)依赖B(0.0.2),B(0.0.1)依赖C(0.0.3)
一段时间原作者更新后,
包版本为:A(1.0.1)依赖B(1.0.0),B(1.0.0)依赖C(1.0.0)

每一次的更新可能带来不一样的功能,在多人合作、发布模块到npmjs社区、上传到github给其他人使用时,保留模块的版本信息可用于下载指定的版本号显得特别重要。
本地安装可以让每个项目拥有独立的包,不受全局包的影响,方便项目的移动、复制、打包等,保证不同版本包之间的相互依赖,这些优点是全局安装难以做到的。
另外,据node团队介绍,本地安装包对于项目的加载会更快。
有优点也少不了缺点,如每次新项目都要本地安装所依赖的包,安装包时间相对较长,一来是包太大导致下载慢;二是浪费了硬盘空间,不过现在电脑硬盘动不动就几个T,你还会在意节省这点空间吗?


http://chatgpt.dhexx.cn/article/F4KR2Jwj.shtml

相关文章

webpack打包html

webpack打包html 1.生产环境与开发环境的区别2.打包html3.安装html插件4.在配置文件中引入我们的插件5.在我们的配置文件的最下方写入html配置6.打包完成生成一个index文件7.在文件中写入其他内容8.打包后的内容展示9.改变title的内容10.打包后的效果展示11.打包多个页面12.压缩…

webpack打包json文件

项目里新增了json文件&#xff0c;webpack报错如下&#xff1a; webpack本身是支持json文件读取的&#xff0c;这个报错是babel-loader在报错&#xff0c;也就是说&#xff0c;打包的时候&#xff0c;babel-loader去解析了json文件。babel是js的编译工具&#xff0c;可以把js、…

React 使用webpack打包

一、项目创建 1、新建一个项目文件夹&#xff0c;打开终端&#xff0c;切换到到项目目录下&#xff1a; npm init -y 这时候使用webstorm等高级的编辑器打开项目执行下面步骤效果会更直观。 2、新建一个文件夹public&#xff0c;在文件夹内创建index.html文件&#xff0c;添加…

webpack打包工具的基本使用

目录 一、webpack是什么&#xff1f; 二、webpack的基本使用 1、初始化项目 2、安装webpack及其依赖 3、使用 3.1 配置webpack&#xff1a; 3.2 在package.js文件中添加打包命令 3.3 执行打包命令 三、webpack相关插件 插件一&#xff1a;HtmlWebpackPlugin 插件二&a…

webpack打包优化

目录 概述 打包优化-路由懒加载 问题 那什么是路由懒加载呢? 路由懒加载中的魔法注释 小结 打包优化-包大小分析 包大小分析 打包优化-去掉console-log webpack配置排除打包-整体分析 回顾 提问 思路 webpack配置排除打包-打包瘦身 目标 使用方式 webpack配置…

webpack打包工具的使用方法

目录 一、webpack打包工具 1、简介 2.npm补充 3.webpack一系列的步骤 1.npm init -y初始化文件生成package.json文件 2.npm install jquery -S安装jquery包&#xff0c; 3.卸载包的时候&#xff0c;用npm uninstall jquery -S(如果需要卸载的话) 4.在根目录上新建src文…

webpack 打包chunk

chunk的含义以及出现的情况 webpack特定术语在内部用于管理捆绑过程&#xff0c;输出束&#xff08;bundle&#xff09;由块组成。 是webpack 根据功能拆分出来的代码片段&#xff0c;包含三种情况 官方: 1.入口起点&#xff1a;使用entry配置手动地分离代码 **2.防止重复…

webpack打包报错

在执行npm run build对项目进行打包的时候遇到webpack打包报错的问题 在网上找到各种方法去解决&#xff0c;什么node版本不兼容啊重装node啊&#xff0c;什么saas没装好python环境啊&#xff0c;webpack版本兼容问题啊&#xff01;总之各种说法都看着去尝试解决了&#xff0c;…

webpack打包css

webpack打包 1.打包css2.打包逻辑1-1.webpack打包css逻辑 3.打包css4.打包成独立的css文件5.添加样式前缀6.格式校验7.压缩css8.我们为什么要用这个打包工具呢9.webpack的打包顺序10.总结 1.打包css 2.打包逻辑 1-1.webpack打包css逻辑 非js文件打包 需要对应的loadercss-loa…

初识webpack打包

初识webpack打包&#xff0c;小白入门 前言&#xff1a; webpack是一款基于node的构建工具&#xff0c;其中一大特色就是打包 因为现在前端已经工程化开发&#xff0c;写的代码已经不能直接在浏览器上运行了 这时候webpack会帮你把代码进行编译&#xff0c;打包成浏览器识别的…

webpack打包分析

分析一&#xff1a;打包的时间分析 如果我们希望看到每一个loader、每一个Plugin消耗的打包时间&#xff0c;可以借助于一个插件&#xff1a;speed-measure-webpack-plugin注意&#xff1a;该插件在最新的webpack版本中存在一些兼容性的问题&#xff08;和部分Plugin不兼容&am…

如何使用Webpack打包

简单的说了一下webpack是干嘛的&#xff0c;和webpack如何安装&#xff0c;如何进行打包&#xff0c;步骤很详细&#xff0c;感兴趣的同学可以试着操作一下。 文章目录 1、webpacks是什么&#xff1f;2、Webpack安装3、初始化项目4、使用webpack进行JS打包5、使用webpack进行CS…

webpack打包优化配置

文章目录 前言不进行任何打包配置代码分离splitChunkruntimeChunk动态导入 css文件处理css文件提取css文件压缩css实现Tree Shaking js实现Tree shakingTerserscope Hoisting打包优化没效果打包界面显示分析总结 前言 之前使用webpack进行项目搭建配置时&#xff0c;都是操作一…

webpack打包路径更改_webpack打包教程

创建package.json文件 命令:npm init 安装webpack npm install --save-dev webpack npm install --save-dev webpack-cli 全局安装: npm install --global webpack webpack-cli 打包 默认entry入口 src/index.js 默认output出口 dist/main.js 打包模式: webpack --mode deve…

Vue基础知识总结 9:vue webpack打包原理

&#x1f3c6;作者简介&#xff1a;哪吒&#xff0c;CSDN2022博客之星Top1、CSDN2021博客之星Top2、多届新星计划导师✌、博客专家&#x1f4aa;&#xff0c;专注Java硬核干货分享&#xff0c;立志做到Java赛道全网Top N。 &#x1f3c6;本文收录于&#xff0c;Java基础教程系列…

webpack 打包流程

流程梳理 在开始之前我们先对于整个打包流程进行一次梳理。 这里仅仅是一个全流程的梳理&#xff0c;现在你没有必要非常详细的去思考每一个步骤发生了什么&#xff0c;我们会在接下来的步骤中去一步一步带你串联它们。 整体我们将会从上边5个方面来分析Webpack打包流程: 初…

Webpack打包

webpack【依赖node环境】 什么是webpack&#xff1f; 从本质上将&#xff0c;webpack是一个现代的JavaScript应用的静态模板打包工具。 前端模块化&#xff1a; 前端模块化是指&#xff0c;通过将前端代码根据一定的规则解耦封装成几个代码文件&#xff08;模块&#xff09;&…

使用webpack打包vue项目

使用webpack打包vue项目 安装webpack工具&#xff0c;安装方式有两种&#xff1a;全局安装&#xff08;命令&#xff1a;npm install -g webpack webpack-cli&#xff09;以及安装在项目中&#xff0c;这里使用第二种&#xff1a; //在项目中安装&#xff0c;这里的-D表示运用到…

Idea 2017.3.+永久破解方法

一、下载Intellij IDEA2017.3.5x64旗舰版 去官网下载此处不赘述 二、下载破解jar包 链接在此http://idea.lanyus.com/jar/JetbrainsCrack-2.7-release-str.jar 三、打开安装好的IDEA路径下的bin目录 将下载好的jar包复制进来 例如 四、修改bin目录下的两个文件 idea.exe…

InetlliJ IDEA 2017破解(亲测,可用)

1.InetlliJ安装好后&#xff0c;启动&#xff0c;至License Activation界面&#xff1b; 2.选择License server&#xff1b; 3.在License server address中填入 http://idea.imsxm.com/