package.json
1 | zhangliping@zhangliingdembp ~/Documents/vite $ npm install # 安装 package.json > dependencies 节点下的所有包 |
工具性质的包,提供了好用的终端命令,安装在全局;参考官方说明,决定是否将包安装到全局
包结构
一个规范的包结构必须符合以下 3 点要求:
- 包必须以单独的目录存在;
- 包的顶级目录下必须包含 package.json 这个包管理配置文件;
- package.json 中必须包含 name(包的名称), version(包的版本), main(包的入口) 这三个属性
1 | //package.json |
场景描述:在日常开发中,我们通常需要多人协作开发。举个例子,通常我们整个项目体积为 30M,其中,第三方包的体积是 28M,项目源码也就只有 2M。
第三方体积过大,不方便团队成员间共享源码
解决方法:共享时删除 node_modules
,安装到 node_modules 下的包都称为项目包
dependencies 节点
专门用来记录用户使用 npm install
命令安装了哪些包,未安装任意包前,没有该节点,安装到当前节点中的包称为核心依赖包
devDependencies 节点
仅在项目开发阶段会用到的包,建议使用 npm i packageName --save-dev
简写为 npm i packageName -D
安装到 devDependencies 节点下
如果某些包在开发环境与生产环境都用得到,则安装到 dependencies 节点下。 安装到当前节点下的包称为开发依赖包
.gitignore 忽略文件
开发过程中,要将 node_modules 添加到 .gitignore 忽略文件中
browserslist 参考文档
browserlist 具体描述 参考文档
1 | "browserlist": { // 浏览器兼容配置 |
浏览器兼容修改包括三个方面:一是样式兼容,二是 ES6 转换 ES5 的处理,以上配置仅对这两点有效;无法处理 ES6 内置 API 的兼容,关于 ES6 内置API 处理可查看。
Error
1 | zhangliping@zhangliingdembp ~/Desktop/node/src/demo5/中文 $ npm init -y |
1 | zhangliping@zhangliingdembp ~/Desktop/node/src/demo5/中文/leave a blank space $ npm init -y |
npm init -y 只能在英文目录下运行,Invalid name ‘中文’,中文名称不可以,同时,也不建议使用带有空格的英文名称的目录下运行
Error 下载包速度慢
flowchart LR user((国内)) -->|从国外服务器下载| server[/国外 npm 官方服务器/]
npm 镜像
镜像(Mirroring)一种文件存储形式,一个磁盘上的数据在另一个磁盘上存在相同的副本,即为镜像
淘宝把 npm 官方国外服务器上的包同步到国内的服务器,同时在国内提供下包服务,提高了下包速度
flowchart LR subgraph " " mirroring[淘宝npm镜像服务器] -->|国内服务器| user((国内用户)) end server[/国外 npm 官方服务器/] server -->|同步包数据| mirroring
- 每隔一段时间,淘宝服务器自动同步 npm 官方服务器的包数据到国内;
- 淘宝镜像服务器对国内的用户提供下载包
切换 npm 下包源(下包的服务器地址)
1 | zhangliping@zhangliingdembp ~/Documents/vite $ npm config get reigstry # 查看当前下包的镜像源 |