四、包管理工具

88 阅读2分钟

包管理工具npm

  • 显然,通过第二种方式我们可以更好的管理自己的工具包,其他人也可以更好的使用我们的工具包。

  • 包管理工具npm:

    • Node Package Manager,也就是Node包管理器;

    • 但是目前已经不仅仅是Node包管理器了,在前端项目中我们也在使用它来管理依赖的包;

    • 比如express、koa、react、react-dom、axios、babel、webpack等等;

  • 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 原理

image.png

Yarn工具

  • 另一个node包管理工具yarn:

    • yarn是由Facebook、Google、Exponent 和 Tilde 联合推出了一个新的 JS 包管理工具;

    • yarn 是为了弥补 npm 的一些缺陷而出现的;

    • 早期的npm存在很多的缺陷,比如安装依赖速度很慢、版本依赖混乱等等一系列的问题;

    • 虽然从npm5版本开始,进行了很多的升级和改进,但是依然很多人喜欢使用yarn;

image.png

cnpm工具

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 registry

    npm 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/