1、npm仓库地址
// 指定仓库地址 --registry
npm --registry https://registry.npm.taobao.org install
// 查看仓库地址
npm config get registry
// 设置仓库地址
npm config set registry https://registry.npmjs.org/
// 恢复默认镜像地址
npm config delete registry
2、package.json与package-lock.json区别
package.json 是运行 npm init 时生成的,主要记录项目依赖。
- name:项目名,也就是在使用npm init 初始化时取的名字,但是如果使用的是npm init -y 快速初始化的话,那这里的名字就是默认存放这个文件的文件名
- version:版本号
- private:希不希望授权别人以任何形式使用私有包或未发布的
- scripts-serve:是vue的项目启动简写配置
- scripts-build:是vue的打包操作简写配置
- dependencies:指定了项目运行时所依赖的模块
- devDependencies:指定项目开发时所需要的模块,也就是在项目开发时才用得上,一旦项目打包上线了,就将移除这里的第三方模块
package-lock.json是运行npm install时生成的一个文件
用于记录当前状态下项目中实际安装的各个package的版本号、模块下载地址、及这个模块又依赖了哪些依赖。
为什么有了package.json,还需要package-lock.json文件呢?
当项目中已有 package-lock.json 文件,在安装项目依赖时,将以该文件为主进行解析安装指定版本依赖包,而不是使用 package.json 来解析和安装模块。因为 package 只是指定的版本不够具体,而package-lock 为每个模块及其每个依赖项指定了版本,位置和完整性哈希,所以它每次创建的安装都是相同的。无论你使用什么设备,或者将来安装它都无关紧要,每次都应该给你相同的结果。
3、使用npm命令和yarn命令混合使用会出现安装包冲突
问题分析:
如果将yarn.lock和package.lock文件放在一起,有时会变得很困难,因为存在不同步的风险
yarn install 安装生成的 yarn.lock 文件 与 npm install 生成的 package-lock.json 文件时间相差较远,造成了 yarn.lock 的包版本低于 package-lock.json 的包版本。因为以 ?x.x.x 形式定义的包版本在不同时期安装包版本不一致。
yarn 安装 @babel/preset-env 版本有: “7.5.5”, “^7.4.5”,实际安装的 version 是 “7.5.5”。
npm 与 yarn 安装包不一致
纱线和npm是可以互换的。只要你每次都使用相同的一个,它们之间就没有区别。它们有不同的安装目录,这就是它们不能一起使用的原因。Yarn会安装一个包,npm找不到它。npm会安装一个包,yarn找不到它
解决方法:
使用 npm i xxx --legacy-peer-deps,命令来安装依赖!