前端小白的学习之路(webpack)

提示:webpack简介,nvm,npm配置环境,常用命令,基本web项目构建

目录

webpack

1.配置环境

 1)node.js

node常用命令

2)nvm

nvm常用命令:

3)npm

npm常用命令

2.构建简易web项目

1)创建目录

2)安装webpack依赖

 3)配置 webpack.config.js

4)配置入口文档index.js

5)打包项目

6)打包完毕 


webpack

简介:Webpack是一个现代JavaScript应用程序的模块打包工具。它主要用于将项目中的各个模块(包括JavaScript、样式、图像等)打包成一个或多个静态资源文件,以便在浏览器中加载。使用Webpack可以极大地简化前端项目的构建和部署流程,提高开发效率和应用程序的性能。它已经成为现代前端开发中不可或缺的工具之一。

1.配置环境

webpack 只识别javascript. 所以需要安装nodejs环境。

 1)node.js

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时环境,用于构建快速、可伸缩的网络应用程序。它使得开发人员能够使用 JavaScript 编写服务器端代码,而不仅仅局限于浏览器端.

因为nodejs发布了许多版本,在不同的技术栈下,需要使用不同的nodejs。

所以需要在电脑上安装nvm软件管理nodejs版本。

node常用命令

node <文件名>: 运行指定的 JavaScript 文件。

node index.js

node --versionnode -v: 显示安装的 Node.js 版本。

node -v

node --helpnode -h: 显示 Node.js 的帮助信息,列出可用的命令选项。

node -h

2)nvm

NVM(Node Version Manager)是一个用于管理多个 Node.js 版本的工具。它允许您在同一台计算机上安装和切换不同版本的 Node.js,并为每个项目选择特定的 Node.js 版本。

下载链接:https://github.com/coreybutler/nvm-windows/releases

win + r 打开控制台:nvm --version

显示版本号即表示安装成功

nvm常用命令:

查看可在线安装的NodeJS版本

nvm list available

安装指定版本的 Node.js

nvm install <version>

切换到指定版本的 Node.js

nvm use <version>

列出已安装的所有 Node.js 版本

nvm ls 或 nvm list

显示当前正在使用的 Node.js 版本

nvm current

为指定的版本创建别名

nvm alias <name> <version>

删除指定版本的别名

nvm unalias <name>

卸载指定的 Node.js 版本

nvm uninstall <version>

重新安装指定版本的 Node.js,并将全局包重新安装到新版本中

nvm reinstall-packages <version>

在指定版本的 Node.js 环境下执行特定命令

nvm exec <version> <command>

显示 NVM 的版本信息

nvm --version

打开nvm自动切换

nvm on

关闭nvm自动切换

nvm off

3)npm

npm(Node Package Manager)是 Node.js 的包管理器,用于安装、管理和共享 JavaScript 包。

js依赖包:https://www.npmjs.com/

npm常用命令

npm install <package>: 安装指定的包

npm install webpack
npm i webpack//npm i也表示安装的意思

npm install --save <package>: 安装包并将其保存到项目的 package.json 文件中的 dependencies 部分。这样做可以确保其他开发人员在克隆项目后可以轻松地安装相同的依赖项。(--save放包名前后都可)

npm i webpack --save

npm install --save-dev <package>: 安装包并将其保存到项目的 package.json 文件中的 devDependencies 部分。这样做可以确保只在开发时需要的依赖项被安装。

npm i webpack --save-dev

npm uninstall <package>: 卸载指定的包。

npm uninstall bootstrap

npm update: 更新项目的依赖项。运行此命令时,npm会检查项目中已安装的依赖项,并尝试将它们更新到最新版本。

npm update

npm outdated: 检查哪些依赖项已经过时。运行此命令时,npm会列出已安装的依赖项,并显示它们的最新版本。

npm outdate

npm init: 初始化一个新的 npm 项目。运行此命令时,npm会询问您一些关于项目的信息(项目名称、版本、描述、入口文件、作者),并生成一个 package.json 文件。

npm init
npm i

 npm publish: 将您的包发布到 npm 注册表中。您必须先登录到您的 npm 帐户,然后才能运行此命令。

npm publish

npm start: 运行在 package.json 文件中 scripts 部分定义的 "start" 脚本,通常用于启动应用程序的入口点。

npm start

npm run <script>: 运行 package.json 文件中scripts 部分定义的自定义脚本。您可以使用此命令运行任何在 scripts 部分中定义的命令

npm run serve

2.构建简易web项目

1)创建目录

 

package.json: 这是 Node.js 项目的配置文件,其中包含了项目的名称、版本、依赖项等信息。可以使用 npm init 命令来初始化一个新的 package.json 文件。 

{
  "name": "web03",
  "version": "1.1.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "bulid": "npx webpack --config webpack.config.js",
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "clean-webpack-plugin": "^4.0.0",
    "css-loader": "^6.10.0",
    "css-minimizer-webpack-plugin": "^6.0.0",
    "file-loader": "^6.2.0",
    "html-webpack-plugin": "^5.6.0",
    "less": "^4.2.0",
    "less-loader": "^12.2.0",
    "mini-css-extract-plugin": "^2.8.1",
    "sass": "^1.72.0",
    "sass-loader": "^14.1.1",
    "style-loader": "^3.3.4",
    "terser-webpack-plugin": "^5.3.10",
    "url-loader": "^4.1.1",
    "webpack": "^5.91.0",
    "webpack-clean-plugin": "^0.2.3",
    "webpack-cli": "^5.1.4",
    "webpack-dev-server": "^5.0.4"
  },
  "dependencies": {
    "bootstrap": "^4.6.2",
    "jquery": "^3.7.1"
  }
}

webpack.config.js :是 webpack 的配置文件

它包含以下参数:

entry: 这是指定 webpack 构建入口的配置选项,可以是单个入口文件路径或者一个对象,用于指定多个入口文件。

output: 这是指定 webpack 输出的配置选项,用于指定输出文件的名称、路径等信息。

module: 这是指定 webpack 如何处理不同类型模块的配置选项,包括了定义加载器(loaders)和转换器(transformers)。

resolve: 这是指定 webpack 如何解析模块请求的配置选项,包括了模块路径、别名、扩展名等。

plugins: 这是指定 webpack 使用的插件的配置选项,用于执行各种构建任务,如压缩、优化、代码分割等。

mode: 这是指定 webpack 的构建模式的配置选项,可以是 "development"、"production" 或 "none" 中的一个,用于指定构建时的优化等级。

devtool: 这是指定 webpack 如何生成 source map 的配置选项,用于帮助调试代码。

optimization: 这是指定 webpack 优化行为的配置选项,可以用于定义优化策略、代码拆分、缓存等。

 src 目录: 这是项目的源代码目录,通常包含了所有的 JavaScript、CSS、图像等源文件,这里还创建了一个index.js作为入口文档。

2)安装webpack依赖

 3)配置 webpack.config.js

// 导入path模块
const path = require('path');

// 配置
const option = {
    // 入口文件
    entry: {
        index: "./src/index.js"
    },
    // 打包模式
    // development: 开发环境
    // production: 生产环境
    mode: "production",
    // 输出目录
    output: {
        path: path.resolve(__dirname, 'dist'),
        filename: 'boundle-[hash].js',
    },
}


// 配置选项(暴露)
module.exports = option;

4)配置入口文档index.js

通过import引入所需的css,js或第三方库

// 入口文件
// 引入所需css文件
import "./css/index.css";

// 引入所需js文件
import "./less/main.js";

// 引入第三方库(如jQuery)
import $ from 'jquery';

5)打包项目

通过调用在package.js中预设好的命令来打包项目

npm run build

6)打包完毕 

直接在dist中运行.html文件即可

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

nandgame中的复合存储器

output部分的三个寄存器是用于校验结果的&#xff0c; 实际还得摆放寄存器A、D和RAM 然后st都是触发导通&#xff0c;cl都是触发传值&#xff0c; ad是address的缩写 *a是c语言的写法&#xff0c;a为地址&#xff0c;*a就是地址a指向位置存储的数值。

C语言之strchr用法实例(八十八)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

代码随想录算法训练营第二十天|654.最大二叉树、617.合并二叉树、700.二叉搜索树中的搜索、98.验证二叉搜索树

代码随想录算法训练营第二十天|654.最大二叉树、617.合并二叉树、700.二叉搜索树中的搜索、98.验证二叉搜索树 654.最大二叉树 给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建: 创建一个根节点&#xff0c;其值为 nums 中的最大值。递归地…

vue项目使用eletron将打包成桌面应用(.exe)

vue项目使用eletron将打包成桌面应用(.exe) 1.前期准备 两个项目&#xff1a; 1、自己用vue cli创建的项目 2、第二个是去gitee将案例clone下来 案例地址 https://gitee.com/qingplus/electron-quick-start.git 2、测试案例是否可以正常运行 # 进入项目 cd electron-quick-…

k8s入门到实战(六)—— ConfigMap介绍

ConfigMap configmap 是 k8s 中的资源对象&#xff0c;用于保存非机密性的配置的&#xff0c;数据可以用 kv 键值对的形式保存&#xff0c;也可通过文件的形式保存。 什么是 configmap 在 k8s 中&#xff0c;ConfigMap 是一种用于存储应用程序配置数据的对象。它允许将配置信…

JVM(三)——字节码技术

三、字节码技术 1、类文件结构 一个简单的 HelloWorld.java package com.mysite.jvm.t5; // HelloWorld 示例 public class HelloWorld {public static void main(String[] args) {System.out.println("hello world");} }执行 javac -parameters -d . HellowWorld.…

家用洗地机什么牌子好?2024四款家用洗地机良心推荐

洗地机集合了吸拖扫为一体的清洁设备&#xff0c;可以吸走灰尘&#xff0c;吸走污渍&#xff0c;还能杀菌等等&#xff0c;高效清洁又省力&#xff01;对于工作忙的上班族&#xff0c;带娃的宝妈&#xff0c;还有体弱的老人都非常适合。但是说到选购产品这方面&#xff0c;很多…

leetcode mt simple

Leetcode-MT-Simple 文章实际写于2021年&#xff0c;那个炎热的夏天。 Leet Code 美团题库简单类总结&#xff0c;题目按照解法可大致分为数学法、计数法、位运算、双指针法、字符串、哈希表、栈、递归/迭代、排序法、匹配法、记忆化法、二分法、分治法、摩尔投票法、前缀和、…

头条网盘如何快速获取授权推广

近期可以说是网盘拉新的一个盛宴&#xff0c;好几家网盘为了抢夺用户&#xff0c;都在付费拉新用户&#xff0c;而如今头条网盘也需要开拓市场&#xff0c;方式也很简单粗暴&#xff0c;就是拿钱砸&#xff0c;而对于普通用户来说&#xff0c;只要获得授权&#xff0c;正是赚钱…

NVIDIA A100 NVLink 和 NVIDIA A100 PCIe的区别?

NVIDIA A100 NVLink 和 NVIDIA A100 PCIe 是两种不同连接方式的 NVIDIA A100 GPU。 NVIDIA A100 NVLink: 这种版本的 A100 GPU 使用 NVLink 连接方式&#xff0c;可以实现更高的带宽和更低的延迟。NVLink 是 NVIDIA 的一种专有连接技术&#xff0c;用于连接多个 GPU&#xff0c…

方案功能开发:智能机器人玩具

玩具电动趣萌机器人方案开发定制&#xff0c;东莞市酷得智能科技有限公司是研发型芯片贸易公司&#xff0c;可为制造厂商朋友定制软件底层方案。下面介绍一下机器人方案可实现的功能&#xff1a; 基础功能&#xff1a; 方向&#xff1a;前进&#xff0c;后退&#xff0c;左转&a…

10分钟搭建一套代码质量监控平台

01、jenkins安装部署 01、Jenkins下载 中文官网地址&#xff1a;https://www.jenkins.io/zh/ 02、Jenkins环境安装 安装jdk&#xff0c;上传jenkins安装包&#xff0c;启动jenkins&#xff0c;耐心等待启动完成(第一次需要个几分钟) java -jar jenkins.war 执行日志里一定…

JAVA面试大全之集合IO篇

目录 1、集合 1.1、Collection 1.1.1、集合有哪些类&#xff1f; 1.1.2、ArrayList的底层&#xff1f; 1.1.3、ArrayList自动扩容&#xff1f; 1.1.4、ArrayList的Fail-Fast机制&#xff1f; 1.2、MAP 1.2.1、Map有哪些类&#xff1f; 1.2.2、JDK7 HashMap如何实现…

基于springboot的交通管理在线服务系统的开发

传统办法管理信息首先需要花费的时间比较多&#xff0c;其次数据出错率比较高&#xff0c;而且对错误的数据进行更改也比较困难&#xff0c;最后&#xff0c;检索数据费事费力。因此&#xff0c;在计算机上安装交通管理在线服务系统软件来发挥其高效地信息处理的作用&#xff0…

人工智能的春天:改变已然发生

以下文章来源&#xff1a;青岛日报 某种意义上说&#xff0c;这个春天属于人工智能&#xff08;AI&#xff09;。 继一年多前ChatGPT惊艳全球后&#xff0c;OpenAI再次放出“王炸”成果——视频大模型Sora&#xff1b;苹果放弃布局多年的造车计划&#xff0c;将ALL in AI&#…

Leetcode第66题:加一

题目描述 给定一个由 整数 组成的 非空 数组所表示的非负整数&#xff0c;在该数的基础上加一。最高位数字存放在数组的首位&#xff0c; 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外&#xff0c;这个整数不会以零开头。 代码实现 class Solution:def plusOne(s…

Temple of Doom靶场nodejs获取shellss-manager漏洞tcpdump提权

下载链接&#xff1a; Temple of Doom: 1 ~ VulnHub 下载完成后直接在vxbox中导入即可&#xff0c;网络链接模式根据自身情况而定&#xff08;我采用的桥接模式&#xff09; 正文&#xff1a; 先用nmap进行扫描靶机ip nmap -sn 192.168.1.1/24 对192.168.1.5进行端口探测&a…

解决华为云服务器宝塔面板无法访问显示“此站点的连接不安全”问题

已经配置好安全组以及初始化宝塔面板&#xff0c;还是无法访问镜像管理页面&#xff0c;提示此站点的连接不安全。 解决方案 将地址https改为http即可进入。 成功登录后&#xff0c;开启面板SSL即可。

商家店铺如何批量抓取淘宝、天猫、1688主图视频并下载保存

当前&#xff0c;大多的平台商品越来越多都有主图视频、评论视频、详情视频、然而&#xff0c;在一定程度上就意味着&#xff0c;这也是引流渠道的一步重要环节&#xff0c;如果自己的店铺商品没有相应的主图视频&#xff0c;很可以会严重流失客源。小编就为大家来介绍批量抓取…

图解MySQL目录

资料来源 : 小林coding 小林官方网站 : 小林coding (xiaolincoding.com) 一 .图解MySQL介绍 重点突击 MySQL 索引、事务、锁、日志等面试常问知识。 二 . 基础篇 执行一条 select 语句&#xff0c;期间发生了什么&#xff1f; : 执行一条 select 语句&#xff0c;期间发生了什…