04_前端包管理工具模块化

news2024/11/16 12:42:38

注意事项:

​ 改模块代码不用重启服务器,修改config文件的时候需要重启服务器

​ nvm的安装路径和node的安装路径不能在同一路径下面

​ 有乱码问题使用管理员权限进行使用use方法

下载安装node

​ 使用命令进行安装

1.nvm list 查看已下载所有的node版本

2.nvm install 版本号 下载指定版本的node

3.nvm uninstall 版本号 卸载指定版本的node

4.nvm use 版本号 使用指定版本的node/更换指定版本

5.nvm version 查看nvm的版本

C:\Users\Administrator>nvm install 18.16.0

C:\Users\Administrator>nvm uninstall 18.16.0

C:\Users\Administrator>nvm use 14.15.3

C:\Users\Administrator>nvm list

C:\Users\Administrator>nvm version

package.json文件的作用和pom.xml一样

NPM

管理前端包的依赖

使用淘宝镜像

npm install -g cnpm --registry=https://registry.npmmirror.com

注意:

​ 报错的话就更换node的版本再进行下载

使用命令创建json

cnpm innit

后面的设置默认就直接回车
在这里插入图片描述

安装依赖

有本地安装,全局安装

1.本地添加,一般都是使用本地

npm install jquery

只能在package.json文件这个包下进行添加
在这里插入图片描述

在这里插入图片描述

开发环境(默认)

​ 开发时会用到语法检查,包大小分析

npm install -D xxx

生产环境

–production

注意:当需要下载已经配置好的依赖,直接使用使用 npm install命令进行添加依赖包

yarn包管理工具

1.并行安装:

2.离线模式:

3.版本锁定:

4.信息输出 :

模块化

传统的问题

​ 请求过多:页面复杂度高

​ 依赖模糊:依赖的文件多

​ 命名空间污染:

两个核心

​ 暴露:自己可以选择暴露哪些文件,外部文件可以选择性引入

​ 封装引入:将复杂的文件封装成几个文件,和java文件相似

好处:

​ 避免命名空间污染

​ 代码复用性高

​ 责任分离,按需加载

​ 不关心模块之间依赖问题

​ 增加代码的可维护性

commjs规范(模块化)

在服务器端,模块的加载是运⾏时同步加载的;在浏览器端,模块需要提前编译打包处理。只有在运行时才能确定

语法:使用关键字module.exports require

暴露模块

module.exports = value;   //暴露部分
exports.xxx = value;   //暴露全部

引入模块

let m1=require('./m1');//引入整个文件

ES6模块化

不需要在运行的时候才确定

导出(export)两种方式

export {name,age};//按需导出
export default {name,age,fun};//默认导出所有

导入(import)两种方式

后缀名可以不用写

import {name,age} from './m1.mjs';//按需导入
import xxx from './m1.mjs';//导入所有

五.Webpack(自动化,模块化,前端开发构建工具)

1.作用

是一个JavaScript应用程序静态模块打包工具,可以将多个文件打包到单个文件中,解决了项目模块化和代码复用问题

2.webpack初体验

2.1本地安装(必须安装)

,命令⾏中是没有 webpack 命令的,因此要使⽤的话,需要在 package.json ⽂件中加⼊ scripts 属性,并将其值设置为对象,在对象中添加 “build”: “webpack index.js -o dist/bundle.js” 属性

2.2全局安装(可选)

看自己是否需要在命令行使用webpack命令,不需要可以不用安装

2.3测试:

执行完打包,就可以打开浏览器

3.webpack.config.js

3.1通过配置文件打包

代码在课件中,复制即可

4.webpack- dev- server

以上的方式都是静态方式,每次发生变动,都要重新打包才有效果,现在借用一个插件(标题)来实现自动打包和部署,该插件会帮我们启动⼀个简易的 http 服务器,并且动态监听源⽂件的变动,每当⽂件发生变动以后,它会⾃动帮我们重新加载该⽂件,⼤⼤的提升了开发的效率。

1.安装插件 :(代码课件复制即可)

2.修改配置

在这里插入图片描述

里面属性的含义:

–open ⾃动打开浏览器

–port 服务监听的端⼝ 3000

–hot ⽂件变动后⾃动更新

3.启动:

上⾯配置修改完成后,再修改 index.html ⽂件中引⼊ bundle.js 的路径为 ./bundle.js 即

可,此时在命令⾏执⾏ yarn build 就会启动⼀个 http 服务器,并且会⾃动打开浏览器窗⼝。

然后可以通过修改 index.js ⽂件,⽐如将 red 修改为 gray ,会发现修改完成后,浏览器⾃动更

新为最新的代码。

5.html-webpack-plugin

**问题:**通过上⾯的配置,我们已经可以⽐较轻松的在 webpack 开发了,但是还存在⼀个⼩问题就是 index.html ⽂件中引⽤ bundle.js ⽂件是被我们写死的,如果哪天不叫这个名字,或者加⼊了其他依赖,无法进行使用

安装插件:(课件中复制即可)

6.css- loader

为了将 CSS 也当作是⼀个模块,当其它模块需要⽤到对应的 CSS 时,可以使⽤ impot/require 等

⽅式⽅便的导⼊,我们需要安装 style-loader 和 css-loader,并在 webpack.config.js 中添加这

些 loader

css-loader:将 index.css ⽂件解析为 webpack

能识别的模块,然后打包进 bundle.js ⾥

⾯,但是这样样式与 index.html 还没有关系,想要关联起来就得⽤到 style-loader 了。

style-loader:将打包到 bundle.js 中的样式绑定到 index.html 上,以 style 标签的形式写⼊进

去转换过程: index.css -> bundle.js -> style-loader ->

安装 css-loader 和 style-loader:课件有复制即可

7.ES6转ES5

问题:由于现在开发基本都是基于 ES6 语法进⾏的,但是市⾯上并不是所有浏览器都能够直接⽀持 ES6,因此我们可以使⽤ webpack 集成 babel 来进⾏版本的转换,在编译时⾃动将 ES6 转换为 ES5,也就可以兼容绝⼤部分浏览器了。

流程步骤课件有复制即可

注意:exclude 表示排除掉 node_modules 下载的依赖项。这样可以加速编译效率,⽽且我们也只需要对我们的项⽬ src 中的源文件进行编译即可。新增 .babelrc 配置⽂件,并加⼊以下内容

{
  "presets":["env","stage-0"],
  "plugins":["transform-runtime"]
}

bpack 集成 babel 来进⾏版本的转换,在编译时⾃动将 ES6 转换为 ES5,也就可以兼容绝⼤部分浏览器了。

流程步骤课件有复制即可

注意:exclude 表示排除掉 node_modules 下载的依赖项。这样可以加速编译效率,⽽且我们也只需要对我们的项⽬ src 中的源文件进行编译即可。新增 .babelrc 配置⽂件,并加⼊以下内容

{
  "presets":["env","stage-0"],
  "plugins":["transform-runtime"]
}

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

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

相关文章

VR工地安全虚拟现实体验:多种事故模拟,第三人称回看

建筑工地五大伤害是指:高处坠落、坍塌、物体打击、机械伤害、触电。利用VR(虚拟现实)技术体验建筑工地五大伤害,可以为建筑工人提供更真实、更安全的工作环境,同时也可以帮助他们更好地了解和掌握工作技能。 以下是VR工地安全虚拟现实体验软件…

C++ Primer(读书笔记)

C源文件通常以.cc、.cxx、.cpp、.cp、.C作为后缀来命名 C语言未定义输入输出语句&#xff0c;而是提供了一个全面的标准库来提供IO机制&#xff0c;对应 iostream、fstream、sstream std::cout<<"Enter Two Numbers"<<std::endl;&#xff0c;这条语句执…

在四维轻云使用过程中,出现这些问题应该怎么办?

在四维轻云的使用过程中&#xff0c;可能会出现在地图中无法显示加载的点云或倾斜摄影模型数据、无法上传数据等问题。出现以下这些问题时&#xff0c;可采取一定的措施来解决&#xff0c;若无法解决可联系工作人员处理。 1、在地图中无法显示加载的点云或倾斜摄影模型数据&am…

推特色情机器人账号泛滥,马斯克的“治推谋略”何在?

据BleepingComputer消息&#xff0c;推特虚假机器人账户泛滥的问题不仅还未得到解决&#xff0c;其中传播色情信息的机器人账户近期反而严重泛滥。 在安全研究小组MalwareHunterTeam最近的一项调查研究中曝光了多个传播虚假消息的机器人账户&#xff0c;它们为真实用户发出的帖…

为汽车制造商赋能,CarFramework定制AOSP技术,提升汽车信息娱乐系统

车载CarFramework&#xff08;车载框架&#xff09;是Android Automotive操作系统中的一个关键组件&#xff0c;它提供了与车辆系统交互的基础设施和功能。CarFramework旨在为车载应用程序提供统一的开发和执行环境&#xff0c;以便它们可以与车辆的硬件和软件进行交互。CarFra…

华为云专家出品《字节码编程指南》电子书上线

Javaagent非入侵全链路监控设计和实现入门 ASM、Javassist、Byte-Buddy三套字节码框架案例 市面上少有的成体系字节码知识 都在这里&#xff01; 华为云出品《深入理解边缘计算》电子书上线 本书适合超过3年经验的高级开发者&#xff0c;适合对字节码编程有学习需求或想拓展…

赛效:CAD怎么转PDF

1&#xff1a;打开91ai在线工具并登录自己的账号&#xff0c;从“CAD转换”菜单里点击CAD转PDF。 2&#xff1a;点击上传电脑本地的CAD文件。 3&#xff1a;文件上传成功后点击“开始转换”。 4&#xff1a;转换成功后&#xff0c;点击下载按钮将文件保存本地。 如果你想了解更…

【超详细】MySQL环境安装

文章目录 说明1、关闭不需要的环境2、检查并删除系统安装包3、获取 mysql 官方 yum 源4、安装 mysql yum 源&#xff0c;对比前后 yum 源5、看看 yum 源是否安装成功6、安装 mysql 服务7、查看配置文件和数据存储位置8、启动服务9、登录 mysql方法一&#xff1a;方法二&#xf…

jedis使用,操作Redis数据库2

在刚刚ping通的基础上,再来通过jedis连接池连接redis 在resources下创建redis.properties配置文件,在配置文件中写如下内容 # 必配 # Redis服务器地址(域名或IP) redis.host192.168.40.100 # Redis服务器连接端口(Redis默认端口号是6379) redis.port6379 # Redis服务器连接密码…

Redis从入门到精通【进阶篇】之持久化 AOF详解

文章目录 0.前言1.详解1.1 AOF 文件的创建1.2. AOF 文件的写入1.3. AOF 文件的同步1. 3.1 同步磁盘上的所有数据1. 3.2 定期同步磁盘上的数据 1.4. AOF 文件的重写1.5. AOF 文件的恢复1.6. 小结 2. RDB和AOF混合方式3. Redis从入门到精通系列文章 0.前言 Redis 支持多种持久化…

Axure设计之滑动验证组件(动态面板)

一、案例效果 1、默认显示滑块、背景及提示文案&#xff1b; 2、滑块仅允许向右水平拖动&#xff0c;且不能超过背景区域&#xff1b; 3、滑块移动过程中&#xff0c;左侧区域样式跟随变化&#xff0c;右侧区域保持不变&#xff1b; 4、滑块为未拖动到最右侧时释放&#xff…

后书《乡村振兴战略下传统村落文化旅游设计》,交浅而言深者,愚也

后书《乡村振兴战略下传统村落文化旅游设计》&#xff0c;交浅而言深者&#xff0c;愚也

初学Spring boot (六) 自定义starter

学习回顾&#xff1a;初学Spring boot &#xff08;五&#xff09; 自动配置原理 自定义Starter 我们分析完毕了源码以及自动装配的过程&#xff0c;我们可以尝试自定义一个启动器来玩玩&#xff01; 1、说明 启动器模块是一个 空 jar 文件&#xff0c;仅提供辅助性依赖管理&am…

B2a实例学习记录

B2a简介 只是把hit存到了hitcollection&#xff0c;只是统计了各自event结果&#xff0c;将每次event的运行结果存起来了&#xff0c;并没有做总的求和 如何在B2a的基础上&#xff0c;实现对某一个chamber的能量的累加 1 hit和SD&#xff08;sensitive detector) 每一个s…

越权访问漏洞

越权漏洞 越权访问漏洞示意图 一、越权访问漏洞简介 1.类型 水平越权&#xff1a;通过更换的某个ID之类的身份标识&#xff0c;从而使A账号获得&#xff08;增删查改&#xff09;B账号的数据 垂直越权&#xff1a;使用低权限身份的账号&#xff0c;发送高权限账号的请求&…

Java——内部类

一、成员内部类 类中的东西都是成员&#xff0c; 1.1、成员内部类定义 定义成员内部类的格式&#xff1a; class OuterClass {//外部类class InnerClass{//内部类&#xff08;内部类实际是外部类的一个属性&#xff09;} }示例 public class Outer {private static int r…

使用Selenium-PO设计模式提高Web自动化测试效率

PO&#xff08;page object&#xff09;设计模式是在自动化中已经流行起来的一种易于维护和减少代码的设计模式。在自动化测试中&#xff0c;PO对象作为一个与页面交互的接口。测试中需要与页面的UI进行交互时&#xff0c;便调用PO的方法。这样做的好处是&#xff0c;如果页面的…

.Net之AOP - 使用Fody的代码静态编织实现AOP

简介&#xff08;好久没写博客了&#xff09; 万物皆可AOP&#xff0c;本篇文章主要讲解在.Net7中使用Fody的代码静态编织实现AOP。 一、前言 AOP AOP是指面向切面编程 &#xff08;Aspect Oriented Programming&#xff09;&#xff0c;相信大家都再熟悉不过了&#xff0c;…

上海市“小巨人”竞争力指数榜单发布!上海三思居全市总榜第四!分项NO.1!

6月25日下午&#xff0c;2022 年上海市专精特新“小巨人”市场竞争力指数榜单”在上海市上海联合产权交易所正式发布。上海三思电子工程有限公司多项荣登指数榜单&#xff1a; ●指数总榜TOP10&#xff0c;上海三思以83.69的高分位居全市8072家“小巨人”企业第四位&#xff0…

军用电子设备人工智能时代正在到来

源自&#xff1a; 战略前沿技术 Al的应用快速增长 更大的图景 人工智能技术的多面性 增强作战人员能力 数据依赖 人工智能和机器学习:前面的路 对人工智能应用保持警惕 声明:公众号转载的文章及图片出于非商业性的教育和科研目的供大家参考和探讨&#xff0c;并不意味着支持其观…