包管理工具npm
-
显然,通过第二种方式我们可以更好的管理自己的工具包,其他人也可以更好的使用我们的工具包。
-
包管理工具npm:
-
Node Package Manager,也就是Node包管理器;
-
但是目前已经不仅仅是Node包管理器了,在前端项目中我们也在使用它来管理依赖的包;
-
比如express、koa、react、react-dom、axios、babel、webpack等等;
-
-
npm管理的包可以在哪里查看、搜索呢?
-
这是我们安装相关的npm包的官网;
-
npm管理的包存放在哪里呢?
-
我们发布自己的包其实是发布到registry上面的;
-
当我们安装一个包时其实是从registry上面下载的包;
-
常见的属性
-
scripts属性
-
scripts属性用于配置一些脚本命令,以键值对的形式存在;
-
配置后我们可以通过 npm run 命令的key来执行这个命令;
-
npm start和npm run start的区别是什么?
-
它们是等价的;
-
对于常用的 start、 test、stop、restart可以省略掉run直接通过 npm start等方式运行;
-
-
-
dependencies属性
-
dependencies属性是指定无论开发环境还是生成环境都需要依赖的包;
-
通常是我们项目实际开发用到的一些库模块;
-
与之对应的是devDependencies;
-
-
devDependencies属性
-
一些包在生成环境是不需要的,比如webpack、babel等;
-
这个时候我们会通过 npm install webpack --save-dev,将它安装到devDependencies属性中;
-
npm install 原理
Yarn工具
-
另一个node包管理工具yarn:
-
yarn是由Facebook、Google、Exponent 和 Tilde 联合推出了一个新的 JS 包管理工具;
-
yarn 是为了弥补 npm 的一些缺陷而出现的;
-
早期的npm存在很多的缺陷,比如安装依赖速度很慢、版本依赖混乱等等一系列的问题;
-
虽然从npm5版本开始,进行了很多的升级和改进,但是依然很多人喜欢使用yarn;
-
cnpm工具
-
由于一些特殊的原因,某些情况下我们没办法很好的从 registry.npmjs.org下载下来一些需要的包。
-
查看npm镜像:
npm config get registry # npm config get registry
- 我们可以直接设置npm的镜像:
npm config set registry https://registry.npm.taobao.org
-
但是对于大多数人来说,并不希望将npm镜像修改了:
-
第一,不太希望随意修改npm原本从官方下来包的渠道;
-
第二,担心某天淘宝的镜像挂了或者不维护了,又要改来改去;
-
这个时候,我们可以使用cnpm,并且将cnpm设置为淘宝的镜像:
npm config get registry # npm config get registrynpm config set registry https://registry.npm.taobao.org npm install -g cnpm --registry=https://registry.npm.taobao.org cnpm config get registry # https://r.npm.taobao.org/ -