包管理工具详解(三)

114 阅读2分钟

常见的属性

engines属性

 engines属性用于指定Node和NPM的版本号;

 在安装的过程中,会先检查对应的引擎版本,如果不符合就会报错;

 事实上也可以指定所在的操作系统 "os" : [ "darwin", "linux" ],只是很少用到;

◼ browserslist属性

 用于配置打包后的JavaScript浏览器的兼容情况,参考;

 否则我们需要手动的添加polyfills来让支持某些语法;

 也就是说它是为webpack等打包工具服务的一个属性(这里不是详细讲解webpack等工具的工作原理,所以不再给出详情);

npm install 命令

◼ 安装npm包分两种情况:

 全局安装(global install): npm install webpack -g;

 项目(局部)安装(local install): npm install webpack

◼ 全局安装

 全局安装是直接将某个包安装到全局:

 比如全局安装yarn:

◼ 但是很多人对全局安装有一些误会:

 通常使用npm全局安装的包都是一些工具包:yarn、webpack等;

 并不是类似于 axios、express、koa等库文件;

 所以全局安装了之后并不能让我们在所有的项目中使用 axios等库;

项目安装会在当前目录下生成一个 node_modules 文件夹,我们之前讲解require查找顺序时有讲解过这个包在什么情况下被

查找;

◼ 局部安装分为开发时依赖和生产时依赖:

项目安装

默认安装开发和生产依赖

npm install axios

npm i axios

开发依赖

npm install webpack --save-dev

npm install webpack -D

npm i webpack –D

根据package.json中的依赖包

npm install

很多同学之前应该已经会了 npm install ,但是你是否思考过它的内部原理呢?

 执行 npm install它背后帮助我们完成了什么操作?

 我们会发现还有一个称之为package-lock.json的文件,它的作用是什么?

 从npm5开始,npm支持缓存策略(来自yarn的压力),缓存有什么作用呢?

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 29 天,点击查看活动详情