npm和yarn使用记录

标签: Nodejs 分类: Javascript 创建时间:2019-03-04 06:12:44 更新时间:2025-01-17 10:39:23

一直记不住一些npm的命令问题,这篇文章专门用来记录一些npm使用中的问题。

1.npm install

npm install 包名,默认是安装本地文件夹下,即命令执行的文件夹。大部分的npm官网里面的包都是这么安装的,默认不更新packag.json。
npm install 包名 -save/-S,–save是你发布之后还依赖的东西
npm install 包名 -save-dev/-D,–save-dev是你开发时候依赖的东西

在stackoverflow上有这么一段话:
“Before version 5, NPM simply installed a package under node_modules by default. When you were trying to install dependencies for your app/module, you would need to first install them, and then add them (along with the appropriate version number) to the dependencies section of your package.json.
The –save option instructed NPM to include the package inside of the dependencies section of your package.json automatically, thus saving you an additional step.
In addition, there are the complementary options –save-dev and –save-optional which save the package under devDependencies and optionalDependencies, respectively. This is useful when installing development-only packages, like grunt or your testing library.”
npm 5.0版本以后,就自动加入了–save这个选项。npm( https://docs.npmjs.com/cli/install )文档中是这么描述的“npm install saves any specified packages into dependencies by default.”

2.报错“npm ERR! cb() never called!”和”Unhandled rejection RangeError: Maximum call stack size exceededill install loadIdealTree”

尝试 删除项目中的 node_modules 文件夹,然后再尝试 npm install.

3.安装淘宝镜像

1
2
3
4
5
6
7
8
9
10
11
12
13
## 安装cnpm
npm install -g cnpm --registry=https://registry.npm.taobao.org

## 卸载
npm uninstall -g cnpm --registry=https://registry.npm.taobao.org

## 设置逃避镜像
npm config set registry https://registry.npmmirror.com
## 查看是否设置成功
npm get registry
## 切换回去(注意如果你换成淘宝镜像的话,会影响你发布模块)
npm config set registry https://registry.npmjs.org

安装cnpm,安装成功以后,将npm改成使用cnpm安装模块即可,简单,省事。

参考文章:
1.cnpm卸载与安装步骤
2.nodejs npm 卸载 + 重新安装
3.cnpm的卸载和重新安装 (这里通过删除文件的方式重新安装的cnpm)
4.npm install 卡住不动 无响应解决方案,从此不用在等了 推荐使用解决方案二 (这里还提供了两种工具,一个是smart npm,一个是nrm)

或者用其他的命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
##  查看npm当前镜像源
npm config get registry

## 设置npm镜像源为淘宝镜像
npm config set registry https://registry.npmmirror.com
## 删除
npm config delete registry

## 查看yarn当前镜像源
yarn config get registry

## 设置yarn镜像源为淘宝镜像
yarn config set registry https://registry.npm.taobao.org/

## 部分源地址
yarn ---https://registry.yarnpkg.com
npm --- https://registry.npmjs.org/
cnpm --- https://r.cnpmjs.org/
taobao --- https://registry.npm.taobao.org/
nj --- https://registry.nodejitsu.com/
rednpm --- https://registry.mirror.cqupt.edu.cn/
npmMirror --- https://skimdb.npmjs.com/registry/
deunpm --- http://registry.enpmjs.org/

## 清理缓存

4.Windows|Deepin安装nvm

打开终端,执行wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash

下载[nvm-windows版本}(https://github.com/coreybutler/nvm-windows),然后使用setup程序就可以了,也可以使用免安装版,设置环境变量path即可。

5.Windows|Deepin卸载nvm

只需要删除安装时的路径就好了,issues/298

Windows下用安装程序安装的,只需要在控制面板中卸载就好了,如果免安装版,只需要删除path,然后删除安装路径就可以了。

6.nvm安装node

终端执行命令:nvm install node,会安装最新版的nodejs,中国下载起来很慢,耐心等会。

安装完成,不需要其他的操作即可使用最新版的nodejs了。

或者是使用 nvm list availiable(新版:nvm ls-remote) 查看可以安装的nodejs版本。

然后使用nvm install 12.10.0,应用nvm use 12.10.0

7.关于–save-dev和–save或者是-S和-D的区别

–save-dev或者是-D主要是在开发商辅助开发用到的库,比如压缩代码,编译sass文件,加载vue组件等的插件,在代码开发完成之后,这些工具都没有用了,自己写的代码可以离开工具运行。而–save-dev和-S,主要是自己在代码中需要用到的库,自己写的代码是不能离开函数库而存在的,比如jquery,vue或者是其他的一些组件库等。sudo

8.linux安装nodejs

sudo apt-get install node

9.cnpm uninstall卸载包时总是出错。

如上图,使用cnpm uninstall 卸载某个包时,总是报错:”Error: ENOENT: no such file or directory”,安装的时候也没什么毛病啊,卸载的姿势也是正确的啊。最后,通过重新设置cnpm后,可以解决这个问题。

1
npm install -g cnpm --registry=https://registry.npm.taobao.org

10.更新包

1
2
npm update //更新全部包
npm update [-g] [<pkg>...] //更新某个包

使用上面的命令,更新全部的包,可能会出现错误,所以我选择了另一个插件npm-check。他可以检查哪些依赖包更新了,哪些没有更新,也可以通过手动更新某一个或者时全部依赖包。

1
2
3
4
// 安装
npm install -g npm-check
//检查当前路径下的package.json是否有包需要更新
npm-check
1
2
3
4
5
6
## 手动选择更新某个包
npm-check -u
## 更新全部包
npm-check -y
## 更新全局包
npm-check -g

npm-check更新包的原理并不是npm update,而是npm install重新安装依赖包,然后更新package.json

11.nvm在windows安装node提示“Node.js vnode.0.0 is only available in 32-bit.”

今天在新的电脑上用nvm安装node提示:

我试着直接安装某个具体的版本号:nvm install 10.16.2

12.最好不要将nvm安装在带有空格的路径中

在使用nvm安装nodejs时,最好不要将nvm安装到带有空格的路径中,比如:D:\Program Files (x86)\nvm,这种不行,最后安装完node,会报一个莫名奇妙的问题。而且不能完整的安装nodejs。

把nvm安装到D:\soft\nvm中,就可以正常的安装nodejs了。

13.无法加载文件ps1,因为在此系统中禁止执行脚本。

在执行vue create时,出现了禁止执行脚本的错误。

在管理员命令行下执行:set-executionpolicy remotesigned 即可

参考文档:
1.2018-05-19无法加载文件ps1,因为在此系统中禁止执行脚本
2.无法加载文件 **.ps1,因为在此系统中禁止执行脚本。有关详细信息,请参阅 “get-help about_signing”

小额赞助
本人提供免费与付费咨询服务,感谢您的支持!赞助请发邮件通知,方便公布您的善意!
**光 3.01 元
Sun 3.00 元
bibichuan 3.00 元
微信公众号
广告位
诚心邀请广大金主爸爸洽谈合作
每日一省
isNaN 和 Number.isNaN 函数的区别?

1.函数 isNaN 接收参数后,会尝试将这个参数转换为数值,任何不能被转换为数值的的值都会返回 true,因此非数字值传入也会返回 true ,会影响 NaN 的判断。

2.函数 Number.isNaN 会首先判断传入参数是否为数字,如果是数字再继续判断是否为 NaN ,不会进行数据类型的转换,这种方法对于 NaN 的判断更为准确。

每日二省
为什么0.1+0.2 ! == 0.3,如何让其相等?

一个直接的解决方法就是设置一个误差范围,通常称为“机器精度”。对JavaScript来说,这个值通常为2-52,在ES6中,提供了Number.EPSILON属性,而它的值就是2-52,只要判断0.1+0.2-0.3是否小于Number.EPSILON,如果小于,就可以判断为0.1+0.2 ===0.3。

每日三省
== 操作符的强制类型转换规则?

1.首先会判断两者类型是否**相同,**相同的话就比较两者的大小。

2.类型不相同的话,就会进行类型转换。

3.会先判断是否在对比 null 和 undefined,是的话就会返回 true。

4.判断两者类型是否为 string 和 number,是的话就会将字符串转换为 number。

5.判断其中一方是否为 boolean,是的话就会把 boolean 转为 number 再进行判断。

6.判断其中一方是否为 object 且另一方为 string、number 或者 symbol,是的话就会把 object 转为原始类型再进行判断。

每日英语
Happiness is time precipitation, smile is the lonely sad.
幸福是年华的沉淀,微笑是寂寞的悲伤。