Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >重构谷粒商城12:npm快速入门

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

原创
作者头像
半旧518
发布于 2025-04-09 03:25:05
发布于 2025-04-09 03:25:05
1290
举报

npm快速入门

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

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

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

1、npm的地位

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

image-20250408153257595
image-20250408153257595

2、什么是npm?

image-20250408160059238
image-20250408160059238
image-20250408160949487
image-20250408160949487

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

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

image-20250408161809287
image-20250408161809287

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

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

官网。

image-20250408162145965
image-20250408162145965

3、npm安装

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

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

image-20250408162532515
image-20250408162532515

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

image-20250408162618429
image-20250408162618429

4、npm的基本使用

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

image-20250408163908347
image-20250408163908347

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

image-20250408164158168
image-20250408164158168

成功后,下载起飞咯。

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

image-20250408165558831
image-20250408165558831

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

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

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

image-20250408170207066
image-20250408170207066

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

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

image-20250408170012731
image-20250408170012731

5、package.json文件属性讲解

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

image-20250408171352461
image-20250408171352461

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

image-20250408172226965
image-20250408172226965

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

image-20250408172605575
image-20250408172605575

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

image-20250408172928921
image-20250408172928921

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

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

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

接下来说下package-lock.json。

image-20250409094612630
image-20250409094612630
image-20250409094639361
image-20250409094639361

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

6、NPM安装的包使用

image-20250409100113503
image-20250409100113503

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

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

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

image-20250409100456510
image-20250409100456510

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

image-20250409101753495
image-20250409101753495

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

image-20250409103948736
image-20250409103948736

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

image-20250409104533142
image-20250409104533142

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

image-20250409105311580
image-20250409105311580

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

image-20250409105526135
image-20250409105526135

确认下。

image-20250409105546666
image-20250409105546666

写配置文件。

image-20250409105746565
image-20250409105746565

把插件也装上。

image-20250409105908459
image-20250409105908459

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

image-20250409110127633
image-20250409110127633

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

image-20250409110618913
image-20250409110618913

保存后,使用npm build下。

image-20250409110651861
image-20250409110651861

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

image-20250409110844445
image-20250409110844445

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

image-20250409111144937
image-20250409111144937

不过npm5以后就修复了bug啦

image-20250409111831781
image-20250409111831781

使用起来,轻轻松松。

image-20250409112144886
image-20250409112144886

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
NPM的基本使用
小城故事
2024/08/24
1330
Node npm包管理工具的使用
在项目根目录下运行npm init -y生成项目依赖管理文件:package.json
倾盖
2022/08/16
4520
Node npm包管理工具的使用
cursor重构谷粒商城05——docker容器化技术快速入门【番外篇】
前言:这个系列将使用最前沿的cursor作为辅助编程工具,来快速开发一些基础的编程项目。目的是为了在真实项目中,帮助初级程序员快速进阶,以最快的速度,效率,快速进阶到中高阶程序员。
半旧518
2025/01/23
2480
cursor重构谷粒商城05——docker容器化技术快速入门【番外篇】
谷粒商城重构01——为何要重构谷粒商城
前言:这个系列将使用最前沿的cursor作为辅助编程工具,来快速开发一些基础的编程项目。目的是为了在真实项目中,帮助初级程序员快速进阶,以最快的速度,效率,快速进阶到中高阶程序员。
半旧518
2025/01/22
4690
谷粒商城重构01——为何要重构谷粒商城
微服务项目:尚融宝(12)(前端平台:NPM包管理器)
2020年3月17日,Github宣布收购npm,GitHub现在已经保证npm将永远免费。
一个风轻云淡
2022/11/15
1K0
微服务项目:尚融宝(12)(前端平台:NPM包管理器)
前端踩坑系列《六》——让人又爱又恨的npm包
作为一个前端,我们经常在执行一个命令的时候报错,那就是 npm install,那么 npm install 的时候,程序到底做了什么,还有遇到一些类似的问题的时候怎么去定位问题?
GopalFeng
2020/09/24
7910
前端踩坑系列《六》——让人又爱又恨的npm包
谷粒学院项目实战04——讲师管理模块前端基础(下)
使用axios需要依赖axio.min.js.如果找不到资源可以参考https://blog.csdn.net/weixin_43274097/article/details/106570717。
半旧518
2022/10/26
5370
谷粒学院项目实战04——讲师管理模块前端基础(下)
nodejs笔记2 包管理 npm
包 即nodejs第三方模块 npm 包管理工具 切换包镜像源 淘宝源 npm config set registry=https://registry.npm.taobao.org/ nrm 镜像源管理工具 安装 npm i nrm -g 查看所有可用镜像源 nrm ls 切换镜像源 nrm use taobao i5ting_toc MD转HTML工具 安装 npm i i5ting_toc -g 使用 i5ting_toc -f readme.md -o 发布npm包 登录npm npm
路过君
2022/04/13
4700
​重构谷粒商城09:人人开源框架的快速入门
前言:这个系列将使用最前沿的cursor作为辅助编程工具,来快速开发一些基础的编程项目。目的是为了在真实项目中,帮助初级程序员快速进阶,以最快的速度,效率,快速进阶到中高阶程序员。
半旧518
2025/03/07
2872
​重构谷粒商城09:人人开源框架的快速入门
npm依赖包升级
上一篇文章介绍了vue-cli和create-vue两款vue脚手架,现在官方已经推荐使用creat-vue进行项目的构建,知道cli是基于webpack构建的,每次都需要全部打包构建,而vite就不需要,所以vite速度是更快的。
希里安
2023/10/30
7010
npm依赖包升级
npm-shrinkwrap锁定依赖
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
奋飛
2019/08/15
1.2K0
前端包管理工具 npm yarn cnpm npx
持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第3天,点击查看活动详情
虎妞先生
2022/10/27
9480
前端包管理工具 npm yarn cnpm npx
npm 依赖管理中被忽略的那些细节
? 这是第 66 篇不掺水的原创,想要了解更多,请戳上方蓝色字体:政采云前端团队 关注我们吧~ 本文首发于政采云前端团队博客:npm 依赖管理中被忽略的那些细节 https://www.zoo.te
政采云前端团队
2020/08/26
2.7K0
npm 依赖管理中被忽略的那些细节
重构谷粒商城10:若依系统快速入门
前言:这个系列将使用最前沿的cursor作为辅助编程工具,来快速开发一些基础的编程项目。目的是为了在真实项目中,帮助初级程序员快速进阶,以最快的速度,效率,快速进阶到中高阶程序员。
半旧518
2025/03/28
2140
重构谷粒商城10:若依系统快速入门
npm 入门教程
Node.js 的出现使得用 Javascript 写服务端应用成为可能。Node.js 由 C++ 编写而成并且构建于 V8 引擎之上,因此运行得很快。一开始,Node.js 只是想运行于服务端环境,但是开发者们显然不满足于此,开始创造各种工具来实现自动化任务。也因为此,基于 Node 的前端自动化工具(如Grunt, Gulp 和 Webpack)的出现也给前端开发带来了翻天覆地的变化。
疯狂的技术宅
2019/03/27
1.5K0
npm 入门教程
Node入门教程(7)第五章:node 模块化(下) npm与yarn详解
Node的包管理器 JavaScript缺少包结构的定义,而CommonJS定义了一系列的规范。而NPM的出现则是为了在CommonJS规范的基础上,实现解决包的安装卸载,依赖管理,版本管理等问题。 CommonJS是一个致力于构建统一的JS生态系统,它可以兼容web服务器、桌面应用、命令行应用、浏览器等。它定义了各种开发的规范和API不仅仅模块化相关的规范) 官网的说明: a group with a goal of building up the JavaScript ecosystem for we
老马
2018/04/16
1.1K0
npm5 新版功能特性解析及与 yarn 评测对比
前言 前段时间 npm 发布了 5.0 版本,提供了自动记录依赖树,下载使用强校验,重写缓存系统等功能升级和改造,吸引了不少关注。本文将对 npm5 的新功能和变化点在进行实践使用后进行介绍和总结,并和 yarn 进行简单对比。 更新一览 通过官方的 Release note 我们可以看到 npm5 的主要新功能和大改动主要有下面几点(后面将会详细介绍): 默认新增 package-lock.json 来记录依赖树信息,进行依赖锁定,并使用新的 shrinkwrap 格式。 --save 变成了默认参数,执
马铖
2018/01/15
5.8K0
npm5 新版功能特性解析及与 yarn 评测对比
2018 年了,你还是只会 npm install 吗?
作者:rianma | 腾讯web前端开发工程师 nodejs 社区乃至 Web 前端工程化领域发展到今天,作为 node 自带的包管理工具的 npm 已经成为每个前端开发者必备的工具。但是现实状况是,我们很多人对这个nodejs基础设施的使用和了解还停留在: 会用 npm install 这里(一言不合就删除整个 node_modules 目录然后重新 install 这种事你没做过吗?) 当然 npm 能成为现在世界上最大规模的包管理系统,很大程度上确实归功于它足够用户友好,你看即使我只会执行 inst
Techeek
2018/03/26
6.7K7
Npm vs Yarn 之备忘大全
有则笑话,如此讲到:“老丈人爱吃核桃,昨天买了二斤陪妻子送去,老丈人年轻时练过武,用手一拍核桃就碎了,笑着对我说:你还用锤子,你看我用手就成。我嘴一抽,来了句:人和动物最大的区别就是人会使用工具。……”。撇开这样特例场景,这句话还是非常用有道理的;毕竟从远古石器时期或更早,到如今,所言之语,所穿之衣,代步之车,所学的知识,所晓的常识.....皆是工具;可以说绝大部分人之间的差异(天才级除外),仅在于工具使用之优劣罢了。在工具的使用中,很多人极大程度上停留于会用层面,如若不遇到问题,几乎就处于停滞;这本身倒也没有问题,但可能因为没有透彻的了解,而错失了对该物可以拥有的想象力,从而错过了许多本该有的美好,如此的可惜。
晚晴幽草轩轩主
2018/02/04
1.7K0
npm食用指南
NPM(Node Package Manager)是前端最基础的工具之一,管理着项目的依赖。但用了这么久,始终没有单独地讨论过:npm是一个怎样的系统。
gojam
2019/05/14
7190
相关推荐
NPM的基本使用
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档