【重构谷粒商城12】npm快速入门

发布于:2025-04-14 ⋅ 阅读:(34) ⋅ 点赞:(0)

重构谷粒商城12:npm快速入门

前言:这个系列将使用最前沿的cursor作为辅助编程工具,来快速开发一些基础的编程项目。目的是为了在真实项目中,帮助初级程序员快速进阶,以最快的速度,效率,快速进阶到中高阶程序员。

本项目将基于谷粒商城项目,并且对谷粒商城项目进行二次重构,使其满足最新的主流技术栈要求。包括若依脚手架、大模型、知识库等的嵌入。

上篇文章介绍了node,这篇文章作为加餐,给不熟悉npm的后端程序员扫扫盲,快速入门npm。不至于太懵。下篇文章将介绍webpack。敬请期待。

1、npm的地位

先看下前端的技术栈,了解下npm的地位。

image-20250408153257595

2、什么是npm?

image-20250408160059238

image-20250408160949487

简而言之,类似后端的maven。

这是不用npm下载jquery的方式。

image-20250408161809287

下bootstrap,还要再找。版本更新,要重新找。比较麻烦。

npm简化了一切,不用自己下载了。后面你会慢慢感受到。

官网。

image-20250408162145965

3、npm安装

和node.js相辅相成,node内置了npm。

这里下载node我们前面文章已经讲好多次了。没有装的同学自行安装下。

image-20250408162532515

验证下。可以看到下面版本信息,就是安装成功喽。

image-20250408162618429

4、npm的基本使用

使用npm在项目中安装jquery,很简单、清爽。

image-20250408163908347

不过,现在安装有点慢,我们需要搞个国内镜像先。

image-20250408164158168

成功后,下载起飞咯。

下图总结了npm常用的命令。

image-20250408165558831

注意上面-save参数,是运行时依赖,在开发、运行时都需要有这个依赖,默认参数就是它,打包时会带上这个依赖。-save-dev则是开发时依赖,在运行环境不需要该依赖。打包时不会打这个包。上面的控制是通过配置文件package完成实现的。

真的很简单,我就不演示了。

补充下通过npm卸载包、升级包。

image-20250408170207066

这里补充下,你怎么知道通过npm安装软件指定哪个版本呢?

可以去npm官网搜,看看有啥版本,再选型。

image-20250408170012731

5、package.json文件属性讲解

执行npm init就会自动在项目路径生成package.json配置文件。

image-20250408171352461

可以在package.json中定义脚本。

image-20250408172226965

生成package.json后,执行npm install xx ,会生成package-lock.json,这是基于package.json生成的。这个文件我们后面再做讲解。

image-20250408172605575

同时,package.json文件也会增加以下内容。

image-20250408172928921

这样,别的开发者,拿到代码,执行npm install,就会自动下载对应版本的依赖了。

上面^符号是什么意思,简单来说,^3.5.1,就会自动下载最新的3.x.x。大版本固定,小版本下最新的。

如果是~3.5.1,就是只更新最后一个小版本,更新为最新的3.5.x.

接下来说下package-lock.json。

image-20250409094612630

image-20250409094639361

总而言之,官方就是这么设计的。你觉得不合理也好。了解区别,可以手动更新package.json,不能更新package-lock.json。提交代码时必须提交package-lock.json,否则无法保证一致性。

6、NPM安装的包使用

image-20250409100113503

所以,下篇文章我肯定还是需要给大家介绍下webpack打包工具的。虽然我这顺序我自己也觉得有点乱,但总之不影响读者阅读、学习。而且会把技术栈全都介绍到位,没有到位的也可以给我评论区留言。接受合理建议。

好了,言归正传,讲讲没有webpack时咱怎么用npm安装的包。

第一种方法。手动在代码中导入。在html中定位路径引用包中文件,这么用和没有npm前也没有啥区别,太麻烦了。

image-20250409100456510

方法二,稍微简单一点。这是node的语法,只需要写下模块名字。

image-20250409101753495

7、练习:通过NPM安装包来解决ES6语法兼容性问题

image-20250409103948736

实际demo下,将babel引入代码中,在客户端渲染解决浏览器兼容问题。

image-20250409104533142

但是这样会加大页面渲染时间,我们可以在服务端渲染,解决这个问题。这就需要npm了。

image-20250409105311580

如果我们的镜像中没有这个包,可以在npm install时指定镜像。

image-20250409105526135

确认下。

image-20250409105546666

写配置文件。

image-20250409105746565

把插件也装上。

image-20250409105908459

项目根目录下新建src和渲染目录lib,在src下新建index.js文件。

image-20250409110127633

环境都准备好了。接下来在package.json中,将后台渲染过程直接写到脚本里。

image-20250409110618913

保存后,使用npm build下。

image-20250409110651861

在lib下就会自动生成浏览器兼容的代码了。

image-20250409110844445

8、npm竞品:yarn的安装和使用

image-20250409111144937

不过npm5以后就修复了bug啦

image-20250409111831781

使用起来,轻轻松松。

image-20250409112144886

image-20250409112524117

下篇文章将介绍webpack。敬请期待。


网站公告

今日签到

点亮在社区的每一天
去签到