关键词:
包管理工具深度解析
包管理工具npm
包管理工具npm:Node Package Manager,Node包管理工具。
在前端项目中也使用npm来管理依赖的包。
npm管理的包查看、搜索:npm官网
项目配置文件package.json
创建package.json:npm init
或 npm init -y
"name": "learn_npm",
"version": "1.0.0",
"private": "true",
"description": "",
"main": "index.js",
"scripts":
"test": "echo \\"Error: no test specified\\" && exit 1"
,
"dependencies":,
"devDependencies":,
"author": "",
"license": "ISC"
- name:项目的名称
- version:项目的版本
- description:项目的描述
- main:项目的入口文件。这个字段主要是用来开发第三方包,给开发者提供的入口。和webpack打包命令的入口并不冲突。
- scripts:项目的一些脚本命令。其中 test、start、restart、stop编写进入 scripts执行时,可以不加 run
- author:项目作者的一些信息
- license:项目遵循的协议
- private:当值为true时,项目是不可以发布到npm上,这回防止误操作,不小心执行了发布命令。
- dependencies:项目生产环境依赖的第三方包
- devDependencies:项目开发环境依赖的第三方包
项目配置文件package-lock.json
package-lock.json
内详细记录着安装的第三包的信息(版本,下载路径),以及第三方包之间的依赖关系。
以安装axios为例,对自动生成的这个配置文件进行说明。
"name": "demo",
"version": "1.0.0",
"lockfileVersion": 1,
"requires": true,
"dependencies":
"axios":
"version": "0.21.4",
"resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz",
"integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==",
"requires":
"follow-redirects": "^1.14.0"
,
"follow-redirects":
"version": "1.14.4",
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.4.tgz",
"integrity": "sha512-zwGkiSXC1MUJG/qmeIFH2HBJx9u0V46QGUe3YR1fXG8bXQxq7fLj0RjLZQ5nubr9qNJUZrH+xUcwXEoXNpfS+g=="
- name:项目的名称
- version:项目的版本
- requires:以requires这个方式管理第三方包的依赖关系,在axios依赖的包内就存在这个字段
- dependencies:安装的第三方包的具体信息,和依赖关系
版本管理规范
在package.json
的dependencies
和devDependencies
中,第三方包的版本会出现^
或~
的符号。
package.json内的第三方包不会记录具体的安装版本,具体的安装版本在 package-lock.json中。
npm的包遵循 :semver版本规范
简要说明semver规范:x.y.z
- x主版本号:重大升级
- y次版本号:增加了一些向下兼容的新特性
- z修订号:问题bug的修复
^
和~
的区别
^x.y.z
:x保持不变,y和z永远安装最新版本~x.y.z
:x和y保持不变,z永远安装最新版本
npm常用命令
命令中的
install
是可以简写成i
的.
<package>
的意思代表着 要安装的包名.
安装命令
-
全局安装:
npm install <package> -g
-
局部安装:
npm install <package>
-
重新安装项目的全部依赖:
npm install
根据package.json
来构建。
局部安装的分类
-
开发依赖:
npm install <package> --save-dev
、npm install <package> -D
或npm i <package> -D
-
生产依赖:
npm install <package>
或npm i <package>
卸载命令
npm uninstall <package>
、npm uninstall <package> --save-dev
或npm uninstall <package> -D
强制重新build:npm rebuild
清除缓存:npm cache clean
查看缓存位置:npm config get cache
npm install 原理(非常重要)
🚩
局部命令执行方案
方案一
明确找到node_modules
下的.bin
下的包。
局部webpack的版本:./node_modules/.bin/webpack --version
方案二
通过在scripts
内定义脚本命令。
"scripts":
"test": "echo \\"Error: no test specified\\" && exit 1",
"webpack":"webpack --version"
,
npm run webpack
方案三
使用npx
工具,npx
直接在 node_modules
下的.bin
下查找对应命令
npx webpack --version
python的版本包库包管理器虚拟环境开发工具等概念(代码片段)
一些概念Python虚拟环境,涉及到很多概念和工具,会对使用造成困扰和障碍,所以我们先了解一些概念和与之相关的工具python版本Python版本指的是Python解析器本身的版本。由于Python3不能与Python2兼容,而且两大阵... 查看详情
flink状态管理详解:keyedstate和operatorliststate深度解析(代码片段)
为什么要管理状态有状态的计算是流处理框架要实现的重要功能,因为稍复杂的流处理场景都需要记录状态,然后在新流入数据的基础上不断更新状态。下面的几个场景都需要使用流处理的状态功能:数据流中的数据有重复,我... 查看详情
python包管理工具pip的使用(代码片段)
1、pip版本管理#pip更新到最新版本python-mpipinstall--upgradepip#查看pip版本pipshowpippip--version#查看python版本cmd直接输入python2、pip包管理#安装包pipinstallxxxpipinstallSomePackage==1.0.4#指定版本#升级包,可以使用-U或者--upgradep 查看详情
python应用实战案例-pythongeopandas包详解(附大量案例及代码)(代码片段)
...智能&算法研究类精品专栏,喜欢的小伙伴自行下载。深度学习100例全系列详细教程 深度学习算法原理介绍及应用案例tensorflow从入门到精通100讲 深度学习框架TensorFlow的应用案例手把手教你ML机器学习算法源码全解析&nb... 查看详情
go官方包依赖管理工具之mod(代码片段)
...gomod是什么gomod是Golang1.11版本引入的官方包(package)依赖管理工具,用于解决之前没有地方记录依赖包具体版本的问题,方便依赖包的管理。之前Golang主要依靠vendor和GOPATH来管理依赖库,vendor相对主流,但现在官方更提倡gomod。1... 查看详情
golang包管理工具之govendor的使用(代码片段)
.../govendor,会将依赖包下载到GOPATH的路径下。常用的依赖包管理工具有godep,govendor等,在Golang1.5之后,Go提供了 GO15VENDOREXPERIMENT 环境变量(Go1.6版本默认开启该环境变量),用于将g 查看详情
python包管理工具pip(代码片段)
一:简介pip是一个现代的,通用的Python包管理工具。提供了对Python包的查找、下载、安装、卸载的功能。二:命令命令描述help帮助显示命令的帮助(Showhelpforcommands.)config配置本地和全局变量(常用配置仓... 查看详情
一文弄懂npm&yarn包管理机制(深度解析!)
背景使用npm或yarn管理项目依赖时,可能会产生以下疑问:项目依赖出现问题怎么办?删了重装,即先删除node_modules再重新install,那这样的操作会不会存在风险?把所有依赖都安装到dependencies中,不区... 查看详情
maven管理工具(代码片段)
Maven解决的问题:1.使用maven前搭建项目需要引入各种jar包,并且还可能有jar包冲突的问题解决jar包冲突的方式:1.第一声明优先原则2.路径近者优先原则.直接依赖路径比传递依赖路径近.直接依赖:项目中直接导入的jar包,就是该项目的... 查看详情
软件包管理rpm(代码片段)
包和包管理器包的组成:二进制文件、库文件、配置文件、帮助文件程序包管理器: debian: deb文件,dpkg包管理器 redhat: rpm文件,rpm包管理器 rpm: RedhatPackageManager &ems... 查看详情
installingchocolatey(代码片段)
使用包管理工具(PackageManager)去管理这些软件,这里说的是操作系统级别的包管理工具,也就是管理想要安装到操作系统上的软件的工具。这是相对于项目级别的包管理,比如前端项目用的Bower,还有管理NodeJS包的npm而言的。... 查看详情
工具安装-centos-安装python包管理工具pip(代码片段)
pip是python的包管理工具,pip库中自带了很多python的开源工具包,在使用的时候直接运行pipinstall就可以下载并安装注册到python模块内,下文将会讨论centos中如何安装pip。一、安装pip命令 下载pip安装包:[root... 查看详情
linux企业运维——kubernetes(十八)helm包管理工具(代码片段)
Linux企业运维——Kubernetes(十八)Helm包管理工具文章目录Linux企业运维——Kubernetes(十八)Helm包管理工具一、Helm简介二、Helm安装部署三、使用Helm部署redis四、构建HelmChart五、Helm部署nfs-client-provisioner六、Helm部署... 查看详情
nodejs基础之包管理工具npm(代码片段)
✍🔥Nodejs冲浪笔记地址🔥Nodejs基础之JavaScript模块化(一)https://blog.csdn.net/Augenstern_QXL/article/details/119941988🔥nodejs基础之包管理工具npm(二)https://blog.csdn.net/Augenstern_QXL/article/details/ 查看详情
linux企业运维——kubernetes(十八)helm包管理工具(代码片段)
Linux企业运维——Kubernetes(十八)Helm包管理工具文章目录Linux企业运维——Kubernetes(十八)Helm包管理工具1、Helm简介2、Helm安装部署3、使用Helm部署redis4、构建HelmChart5、Helm部署nfs-client-provisioner6、Helm部署metrics-serv... 查看详情
使用helm包管理工具简化kubernetes应用部署(代码片段)
...我们可以使用Helm来简化这些工作。Helm是Kubernetes的一个包管理工具,用来简化Kubernetes应用的部署和管理。部署Helm客户端与服务端部署客户端在github上HelmRealese下载最新的二进制文件$tar-zxvfhelm-v2.11.0-linux-amd 查看详情
(翻译)60分钟入门深度学习工具-pytorch(代码片段)
60分钟入门深度学习工具-PyTorch作者:SoumithChintala原文翻译自:一、Pytorch是什么?二、AUTOGRAD三、神经网络四、训练一个分类器五、数据并行他是一个基于Python的科学计算包,目标用户有两类为了使用GPU来替代numpy一个深度学习研... 查看详情
cgetcmake包管理工具(代码片段)
cget是一个方便的进行cmake包下载以及安装的工具包含的特性非侵入,无需编写特殊钩子就可以使用cmake开箱即用,由于使用了标准的基于cmake的方式,直接可以使用基于cmkae的软件包去中心,我们可以使用github、git、url,本地文件... 查看详情