Npm学习笔记(npm入门文档)
wxin55 2024-11-08 14:39 9 浏览 0 评论
首先,声明这是整理"表严肃"老师(biaoyansu.com)的课程得来的笔记。
1.定义:
Npm(全称:Node Package Manager)是Node包管理工具。
2.“包”(链接内容):
a.定义:
包就是一坨代码可以是一个文件也可以是一个目录。
b.目的:
用来解决问题。用以解决一个或一类问题。
c.项目问题分析(链接内容):
这个世界不可能存在一模一样的两个项目(除非复制粘贴),但却可能存在两个非常相似的问题。比如:有两个大项目看似完全不一样但是把它分割成一个又一个小问题时会发现其中有很多地方是非常相似的换句话说这些问题就是一模一样。
d.由来:
如c中例子所述我们一遍又一遍地频繁解决这种问题,那我们就可以把这种解决代码封装成一个包,然后每次遇到相同问题时只需要把这个包拖下来就行。
3.出现背景:
a.项目是成长的,可能规模越来越大或者越来越复杂,所以需要的包或依赖也会越来越多。每个包都有自己的生长方式,生长的快慢他们肯定是有不同的版本,每个包都有它们各自的版本。
b.如果一个包依赖另一个包。比如:有Jquery插件叫"A"依赖着Jquery,那这个插件"A"现在版本是2然后它依赖的Jquery版本是1,现在如果把Jquery版本升到2那插件"A"很有可能会停止工作表现出来是满页都报错。
c.这时就必须查看文档了解当前这个Jquery插件用的是哪个版本的Jquery,然后把Jquery也更新掉之后你发现插件"A"好像开始工作了(但是插件"B"也依赖着Jquery)插件"B"又挂掉了(同时插件"C"又依赖着插件"B")插件"C"也跟着挂掉了。
d.基于上述糟糕的情况,Npm应运而生。它不但可以把代码从网上download下来最重要的是它可以帮我们管理不同包之间的关系(比如:这个包依赖着哪个包并且依赖那个版本号是多少当前版本号是多少)。
4.安装和更新:
a.方式:
安装Npm运行环境,Npm包含在其中也会一同安装。Npm运行环境即Node可登陆nodejs.org官网下载。
b.Node作用(链接内容):
连接Js语言和操作系统。之前Js只能跑到浏览器但是现在有了Node(作为一个桥梁)之后Js就可以调用操作系统上的一些接口(比如:操作一个文件,发送一个提醒等)。之前由于浏览器限制Js的权限即它不允许Js来调用操作系统接口。
c.验证安装是否成功:(命令行)
change directory到Npm安装目录,输入"npm -v"命令回车即可看到当前操作系统(如已安装npm)的npm版本号。分析:真正安装的是node然后node自带了npm工具。
d.如何更新(命令行)
在安装npm的当前目录输入"npm update npm@latest -g"(“latest"表示最新稳定版本;”-g"表示全局范围)命令进行更新npm。
5.常用操作:
a.比较以前(npm未出现):
当前项目需依赖哪个包就到"bootcdn.cn"官网找到相应包,下载代码到本地或拷贝链接即可。
b.比较现在(npm已出现):
b-1.先change directory到当前项目页面index.html父级目录中去,输入"npm init -y"("-y"可避免后续很多问题)命令来初始化该目录(之后会在该目录下出现package.json文件)。
b-2.npm初始化到当前目录后就可以使用npm安装jquery,bootstrap,vue等到当前目录下。比如:“npm i jquery”(“i"表示install的缩写)命令表示利用npm安装jquery。分析:当npm安装jquery时它先检查本身是否存在jquery这个东西(如不存在则报错)如存在则去下载之后安装到当前目录下的"node_modules"文件夹下"jquery"文件夹中。
b-3.输入已安装在"node_modules"文件夹下的依赖包相对目录后当前项目即可使用相应依赖包支持的语法。
b-4.当删除掉"node_modules"文件夹后(由于在package.json文件中存在当前项目的依赖包版本信息)所以我们在其父级目录下重新安装一个依赖包即可恢复已删除掉所有依赖包。
b-5.通过在"npmjs.com"官网下搜索可确保依赖包(或库)的名称正确,找到后可利用npm进行安装。
b-6.通过类似"npm uninstall jquery"命令可卸载相应依赖包。
b-7.注意:老版本的npm中不管是安装还是卸载都必须在当前新版本基础上往后追加一个”–save"以明确指定要配置当前项目依赖信息在package.json文件中。当前新版本是默认就会指定。
b-8.通过类似"npm update jquery"命令可对相应依赖包进行更新(如版本号未变则认为其就是最新版本)。
b-9.通过类似"npm i jquery@2.0.1"命令可安装较低版本(需保证该版本低于原版本)依赖包。分析:npm第一次下载依赖包时所需时间较长(下载一次后会缓存该版本的依赖包)到后面再下载同一版本依赖包时就直接从缓存中拿取。
6.常用配置项:
a.“npm init -y”("-y"如果去掉)缩写为"npm init"然后回车之后会发现:package name(只要初始化了对npm来说就是一个包对我们来说就是一个项目),version(1.0.0)等一系列属性值询问如未定义则取默认值。同样前面过程完成后会在初始化目录下生成一个package.json且package.json文件中会出现之前询问的项目信息(比如:package name,version等)。
b.package.json中"test"键表示一个命令快捷方式,其对应的值表示该快捷方式表示的真正命令。
c.package.json中"dependencies"键对应的值表示当前项目在生产环境下的依赖,“devDependencies"键对应的值表示当前项目在开发环境下的依赖(比如:通过"npm i webpack --save-dev"命令安装的webpack,这里的”-dev"就表示开发环境下)。
文章最后发布于: 2019-11-14
a.“npm init -y”("-y"如果去掉)缩写为"npm init"然后回车之后会发现:package name(只要初始化了对npm来说就是一个包对我们来说就是一个项目),version(1.0.0)等一系列属性值询问如未定义则取默认值。同样前面过程完成后会在初始化目录下生成一个package.json且package.json文件中会出现之前询问的项目信息(比如:package name,version等)。
b.package.json中"test"键表示一个命令快捷方式,其对应的值表示该快捷方式表示的真正命令。
c.package.json中"dependencies"键对应的值表示当前项目在生产环境下的依赖,“devDependencies"键对应的值表示当前项目在开发环境下的依赖(比如:通过"npm i webpack --save-dev"命令安装的webpack,这里的”-dev"就表示开发环境下)。
相关推荐
- ES6中 Promise的使用场景?(es6promise用法例子)
-
一、介绍Promise,译为承诺,是异步编程的一种解决方案,比传统的解决方案(回调函数)更加合理和更加强大在以往我们如果处理多层异步操作,我们往往会像下面那样编写我们的代码doSomething(f...
- JavaScript 对 Promise 并发的处理方法
-
Promise对象代表一个未来的值,它有三种状态:pending待定,这是Promise的初始状态,它可能成功,也可能失败,前途未卜fulfilled已完成,这是一种成功的状态,此时可以获取...
- Promise的九大方法(promise的实例方法)
-
1、promise.resolv静态方法Promise.resolve(value)可以认为是newPromise方法的语法糖,比如Promise.resolve(42)可以认为是以下代码的语...
- 360前端一面~面试题解析(360前端开发面试题)
-
1.组件库按需加载怎么做的,具体打包配了什么-按需加载实现:借助打包工具(如Webpack的require.context或ES模块动态导入),在使用组件时才引入对应的代码。例如在V...
- 前端面试-Promise 的 finally 怎么实现的?如何在工作中使用?
-
Promise的finally方法是一个非常有用的工具,它无论Promise是成功(fulfilled)还是失败(rejected)都会执行,且不改变Promise的最终结果。它的实现原...
- 最简单手写Promise,30行代码理解Promise核心原理和发布订阅模式
-
看了全网手写Promise的,大部分对于新手还是比较难理解的,其中几个比较难的点:状态还未改变时通过发布订阅模式去收集事件实例化的时候通过调用构造函数里传出来的方法去修改类里面的状态,这个叫Re...
- 前端分享-Promise可以中途取消啦(promise可以取消吗)
-
传统Promise就像一台需要手动组装的设备,每次使用都要重新接线。而Promise.withResolvers的出现,相当于给开发者发了一个智能遥控器,可以随时随地控制异步操作。它解决了三大...
- 手写 Promise(手写输入法 中文)
-
前言都2020年了,Promise大家肯定都在用了,但是估计很多人对其原理还是一知半解,今天就让我们一起实现一个符合PromiseA+规范的Promise。附PromiseA+规范地址...
- 什么是 Promise.allSettled()!新手老手都要会?
-
Promise.allSettled()方法返回一个在所有给定的promise都已经fulfilled或rejected后的promise,并带有一个对象数组,每个对象表示对应的pr...
- 前端面试-关于Promise解析与高频面试题示范
-
Promise是啥,直接上图:Promise就是处理异步函数的API,它可以包裹一个异步函数,在异步函数完成时抛出完成状态,让代码结束远古时无限回掉的窘境。配合async/await语法糖,可...
- 宇宙厂:为什么前端离不开 Promise.withResolvers() ?
-
大家好,很高兴又见面了,我是"高级前端进阶",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发。1.为什么需要Promise.with...
- Promise 新增了一个超实用的 API!
-
在JavaScript的世界里,Promise一直是处理异步操作的神器。而现在,随着ES2025的发布,Promise又迎来了一个超实用的新成员——Promise.try()!这个新方法简...
- 一次搞懂 Promise 异步处理(promise 异步顺序执行)
-
PromisePromise就像这个词的表面意识一样,表示一种承诺、许诺,会在后面给出一个结果,成功或者失败。现在已经成为了主流的异步编程的操作方式,写进了标准里面。状态Promise有且仅有...
- Promise 核心机制详解(promise机制的实现原理)
-
一、Promise的核心状态机Promise本质上是一个状态机,其行为由内部状态严格管控。每个Promise实例在创建时处于Pending(等待)状态,此时异步操作尚未完成。当异步操作成功...
- javascript——Promise(js实现promise)
-
1.PromiseES6开始支持,Promise对象用于一个异步操作的最终完成(包括成功和失败)及结果值的表示。简单说就是处理异步请求的。之所以叫Promise,就是我承诺,如果成功则怎么处理,失败怎...
你 发表评论:
欢迎- 一周热门
- 最近发表
-
- ES6中 Promise的使用场景?(es6promise用法例子)
- JavaScript 对 Promise 并发的处理方法
- Promise的九大方法(promise的实例方法)
- 360前端一面~面试题解析(360前端开发面试题)
- 前端面试-Promise 的 finally 怎么实现的?如何在工作中使用?
- 最简单手写Promise,30行代码理解Promise核心原理和发布订阅模式
- 前端分享-Promise可以中途取消啦(promise可以取消吗)
- 手写 Promise(手写输入法 中文)
- 什么是 Promise.allSettled()!新手老手都要会?
- 前端面试-关于Promise解析与高频面试题示范
- 标签列表
-
- hive行转列函数 (63)
- sourcemap文件是什么 (54)
- display none 隐藏后怎么显示 (56)
- 共享锁和排他锁的区别 (51)
- httpservletrequest 获取参数 (64)
- jstl包 (64)
- qsharedmemory (50)
- watch computed (53)
- java中switch (68)
- date.now (55)
- git-bash (56)
- 盒子垂直居中 (68)
- npm是什么命令 (62)
- python中+=代表什么 (70)
- fsimage (51)
- nginx break (61)
- mysql分区表的优缺点 (53)
- centos7切换到图形界面 (55)
- 前端深拷贝 (62)
- kmp模式匹配算法 (57)
- jsjson字符串转json对象 (53)
- jdbc connection (61)
- javascript字符串转换为数字 (54)
- mybatis 使用 (73)
- 安装mysql数据库 (55)