npm
是什么
npm
是一个包管理工具,开源作者可以把开源包发布在平台上供其他人下载
使用
。
前端
的同学基本都
使用
过
npm
,这里就不做过多介绍。日常工作
中
npm
的主要用途就是根据
项目
的package.json
使用
npm
install去
安装
依赖
。
npm
install可以说是我们
使用
最频繁的一个指令。在
npm
5
版本
之前,
npm
install会根据package.json指定的
依赖
版本
去进行
安装
。但往往p...
npm
安装
同一
个包的
不同
版本
,以echarts为例
npm
install echarts4@
npm
:echarts@4
npm
install echarts5@
npm
:echarts@5
上面代码是
安装
echarts4和5
两个
版本
,分别命名为echarts4和echarts4
安装
完成后package.json里的
依赖
会写进去如下代码:
"echarts4": "
npm
:echarts@^4.8.0",
"echarts5": "
npm
:echarts@^5.0.2",
这就表示
项目
里成功
安装
了ec
npm
中
安装
指定的
版本
号,格式为 ‘包名@
版本
号’注意:已有
版本
的情况下需要先删除
依赖
,不能直接在package.json
中
改
版本
号,因为package-lock.json
中
仍然是修改前的
版本
号。
npm
无法同时
安装
同一
个 package 的
不同
版本
,以往遇到这种需求的时候,我的办法是自己新建一个包,然后在新建的包里
安装
目标包的一个
版本
,然后暴露出去。这样,
项目
就可以
依赖
新建的包和另一个
版本
,实现同时
依赖
两个
版本
的目的。
在
npm
6.9 以后,
npm
可以为
安装
的包
使用
别名
,可以近乎完美地解决这个问题了。elasticsearch-js
项目
有一段详细说明如何
使用
,我把这一段翻译了一下。
同时
使用
多...
上周吃饭时,大家聊到一个问题。比如我的
项目
trade,
依赖
了A@1.0.0
版本
。 然后我又引入了B,而B
依赖
A@2.0.0
版本
,这时候会产生冲突吗?
都知道不会有冲突,因为这种场景太常见了。不过具体是如何做到的,并没有去了解过。
今天正好有空,就写了个demo看看
首先建立好
项目
trade,然后
安装
A@1.0.0,执行
npm
ls -depth=1
trade
└─ A@1.0.0
然后弄个
npm
包B,让它
依赖
A@2.0.0,
项目
trade
安装
B之后,执行
npm
ls -depth=1
5、
使用
命令 --save 或者说不写命令 --save, 都会把信息记录到 dependencies
中
;devDependencies
中
记录的是
项目
在开发过程
中
需要
使用
的一些文件,在
项目
最终运行时是不需要的;2、
npm
install module_name -D // -D 为 --save-dev 的缩写。1、
npm
install module_name -S //-S 为 --save 的缩写。
使用
命令 --save-dev 则会把信息记录到 devDependencies
中
;
我们最近在
使用
Redis作Session的集
中
化,
中
间碰到了一个如下问题:我们有一些
项目
比较老,引用了NewtonJson的4.0.3.0
版本
的DLL,但是Redis提供的C#集成DLL引用的是NewtonJson的7.0.0.0
版本
的DLL,但我们要在老
项目
中
引用Redis集成DLL,因而就碰到了NewtonJson的
版本
冲突问题。
解决方案一
一、基本概念
npm
全称为 Node Package Manager,是一个基于 Node.js 的包管理器,也是 Node.js 社区最流行、支持的第三方模块最多的包管理器。它的初衷就是让开发人员更容易分享和重用代码。
npm
提供了命令行工具,其主要功能是管理Node.js包,包括
安装
、更新、删除、查看、搜索、发布等。
npm
最初只是Node.js 的包管理器,但随着
前端
技术的不断发展,它的定位变成了广义的包管理器,可以实现JavaScript、React、Vue、Gulp、移动开发等包管理,