npm 切换源为淘宝源
npm config set registry=https://registry.npm.taobao.org/
npm config set registry=http://registry.npmjs.org
“deploy”: “npm publish”,
“prepublishOnly”: “npm run build && npm version patch -m ‘chore: publish [patch]’”,
npm view jquery versions
npm install jquery@latest
错误错误错误错误错误错误错误
发布包 的时候403 npm ERR! publish Failed PUT 403
原因1. 源没有切换
原因2. 邮箱没有验证
npm 版本降级
现在的npm版本是5.8.0 想要还原到原来的3.8.6,执行以下命令:
npm install npm@3.8.6 -g
锁定包版本 npm shrinkwrap
自动生成 package.lock.json
npm5 如果解决依赖不同版本的库
npm3 平行安装依赖,但不同版本依然安装到自己模块下的 node_modules 同时会创建一个带版本号的目录到根 node_modules 下
optionalDependencies
顾名思义,可选的依赖,指的是,即使在npm install时,该依赖安装失败,install命令依然可以继续,不需要抛错误终端。
相关文档中,该类型针对的场景是,对于针对特定平台才能安装成功的库,或者即使这些库安装失败,你也已经有备用的库来替代(这里考虑的可以是不同库的兼容性程度或性能优劣),可以声明依赖到optionalDependencies中。
bundleDependencies | bundledDependencies
两种名称都支持,不同于其他字段的是这个字段的值为一个数组而非对象,切不包含版本信息版本信息记录在其他依赖配置项中,当项目打包时会将数组包含的库打进项目中。
{
“bundledDependencies”: [
“myPackage”
]
}
当项目中使用了非npm 仓库来源的包,比如本地自己开发未上传npm 仓库的工具包、自定义配置以后的第三方包等,他人在使用本项目时又无法获取,此时便需要利用项目中通过bundleDependencies标记的打进项目中的工具包。可以通过npm pack命令会将bundleDependencies标记的依赖打包成.tgz压缩包。(如果我的解释不能让你理解,建议亲身尝试一下便可)
peerDependencies
用于指定你当前的插件兼容的宿主必须要安装的包的版本。
首先说明一下那些依赖适用于此配置项:
插件正确运行的前提是,核心依赖库必须先下载安装,不能脱离核心依赖库而被单独依赖并引用;
插件入口api 的设计必须要符合核心依赖库的规范;
插件的核心逻辑运行在依赖库的调用中;
在项目实践中,同一插件体系下,核心依赖库版本最好是相同的;
举个简单的例子:
我们都知道react用于其事件机制的影响,在地域17版本下,不同版本的react是不支持同时使用的。这就往往导致当我们的react项目所以依赖的某个库,也同样使用react且版本不同,会报错不能使用,大概的依赖树关系如下:
node_modules/
|---- react@16.9.0
|---- xxxx
|----node_modules/
|---- react@16.8.0
1
2
3
4
5
xxxx库依赖并使用了16.9.0版本的react, 而宿主项目使用的是16.8.0版本的,此时便会造成版本冲突。
而在xxxx库中package.json这样配置:
{
“devDependencies”: {
“react”: “16.9.0”
}
“peerDependencies”: {
“react”: “>=16.8.0”
}
}
1
2
3
4
5
6
7
8
在其宿主项目的依赖树则会变为:
node_modules/
|---- react@16.9.0
|---- xxxx
1
2
3
扁平化,xxxx使用宿主项目满足条件的react的依赖。
npm i 总发现权限不够,
npm文件夹改为当前用户就行