npm问题记录

标签: 无 分类: 未分类 创建时间:2021-11-25 02:05:53 更新时间:2024-12-03 13:01:37

1.cnpm和npm卡住

在使用cnpm安装的时候,总是没有什么反应

使用npm却显示错误:

尝试过重启电脑,尝试过删除.nrmpc文件,尝试过升级nodejs版本,尝试过删除代理,。

最后通过使用:npm config set registry https://registry.npm.taobao.org ,代替了cnmp命令,似乎是暂时解决了问题。

2.npm查看已安装的包

npm list –depth=0

3.ENOSPC: no space left on device

磁盘没空间了呗,加个ssd啊。

参考文章:
【1】.如何解决NodeJS Error: ENOSPC

4.Nodemon Error:System limit for number of file watchers reached

1
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

5.Cannot read properties of undefined (reading ‘endsWith’)

在使用pnpm进行打包的时候,没有问题,后来我使用了npm进行打包,结果就报错了。

【解决方法】
因为我用了 jeecg-boot 的vue3的配置模版,所以也就是直接改 build/vite/plugin/html.ts 文件中的下面的代码。

1
2
3
4
// 原代码
const path = VITE_PUBLIC_PATH.endsWith('/') ? VITE_PUBLIC_PATH : `${VITE_PUBLIC_PATH}/`;
// 修改为
const path = VITE_PUBLIC_PATH?.endsWith('/') ? VITE_PUBLIC_PATH : `${VITE_PUBLIC_PATH}/`;

6.Could not resolve dependency:npm ERR! peer prettier@”^2.0.0” from pretty-quick@3.3.1

【解决方案】

1
npm install --legacy-peer-deps
参考文章:
【1】.demo项目中npm install报错

7.Cannot read properties of undefined (reading ‘startsWith’)

在windows上可以安装,但是到了mac上就是安装不上,执行 pnpm install 就报错,我用了 jeecgboot, 原先还是行,现在不行了。

【尝试方案】
(1)升级版本,由pnpm v9.1.4 进行升级到 v9.5.0,结果无效。
(2)node 安装从 v20.12.2 降级到 v18.20.4,安装很慢,真是有些搞不懂了。

【解决方案】
我搜了很多的方案,都没说到点子上,都是很多的问题,不知道。最后我死马当活马医,把pnpm-lock.json删掉了,重新进行了 pnpm 进行安装依赖包,这次竟然可以了。

8.The package “@esbuild/win32-x64” could not be found, and is needed by esbuild.

本来项目运行的好好的,结果更新了vscode之后,结果无法运行了。

【尝试方案】
(1)我尝试了 pnpm add esbuild,结果无效。
(2)尝试 npx clear-npx-cache,结果无用。

【解决方案】
后来我还是重新安装了依赖

1
pnpm add @esbuild/win32-x64 -D

9.error:0308010C:digital envelope routines::unsupported

长时间不用了,结果启动 pnpm dev 之后,就报错了。

【解决方案】
命令行设置 NODE_OPTIONS, 然后重新开一个命令行。

1
2
# 命令行
export NODE_OPTIONS=--openssl-legacy-provider

10.ERR_OSSL_EVP_UNSUPPORTED

在打包运行别人的程序的时候,出现了这个问题。

【解决方案】
在执行命令之前,增加环境变量 NODE_OPTIONS=–openssl-legacy-provider。

1
2
"serve": "export NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve  --mode dev",
"build": "export NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build",
参考文章:
【1】.错误代码 ERR_OSSL_EVP_UNSUPPORTED 最直接的办法,将 node.js 版本降到 v16+
小额赞助
本人提供免费与付费咨询服务,感谢您的支持!赞助请发邮件通知,方便公布您的善意!
**光 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.
幸福是年华的沉淀,微笑是寂寞的悲伤。