npm包相关
npm 包管理工具是前端工程化必不可少的一环,然而其所涉知识非常庞杂,官方文档只提供简洁的介绍,还有更多细节的使用方式可能是默认的形式出现,需要去社区追溯渊源。本文 收集遇到的 npm 相关的零散问题,以供未来所需。
# 关于 link 标识符
此 link 并非npm link
,而是指dependencies
下的本地包链接标识符。文档并未介绍相关知识,是在阅读 vite 源码的时候发现的,如下:
{
"devDependencies": {
"types": "link:./types"
}
}
1
2
3
4
5
2
3
4
5
types 使用如下
import type { Connect } from 'types/connect'
1
看起来没什么,自己手写的时候 ts 就 报错了。
Cannot find module 'types/connect' or its corresponding type declarations.ts(2307)
1
google 一下,找到相关链接 (opens new window)。
然后执行npm i
,又报错。
npm ERR! code EUNSUPPORTEDPROTOCOL
npm ERR! Unsupported URL Type "link:": link:./types
1
2
2
想到 vite 建议使用 pnpm 来启动,于是执行pnpm i
,至此问题解决。
- tips 其实 yarn 也有类似的问题,不过 yarn 支持 file 来替代 link。见issue (opens new window)。
{
"devDependencies": {
"types": "file:./types"
}
}
1
2
3
4
5
2
3
4
5
执行yarn install
即可。
# npm config set
命令
这个命令是自定义 npm 的环境变量,一般用于设置依赖包镜像。
npm config set test_mirror http://test.com
1
然后可以查看刚刚设置的变量。
npm config get test_mirror
# http://test.com
1
2
2
也可以去全局环境变量的配置文件查看
npm config get userconfig
1
控制台会输出用户自定义配置文件的路径,如
C:\Users\admin\.npmrc
1
打开该.npmrc 文件,发现末尾已经有一行变量
test_mirror=http://test.com
1
# nvm 切换 node 后,npm install 失败
低版本 node(如 14.18.1)切换到高版本(如 16.17.0),切换成功。但随之运行npm i
则报错:
npm ERR! Unexpected token '.'
1
网上搜索,认为是 nvm 低版本的原因,将其升级到 1.1.9 则可以(我的是 1.1.7)。
升级后还是不能安装,将 noce 升级到 V17 就可以了。
# nvm use 出现乱码
通过github 安装 nvm (opens new window)的方式下载 setup.exe 版本,一路安装,结果在切换 node 版本时报错,且为乱码。
exit status 5: �ܾ����ʡ�
1
控制台输入:chcp 65001
,再重新运行nvm use 14.18.1
,此时乱码内容可以正常显示:
exit status 5: Access is denied.
1
权限不够,用管理员身份打开 cmd 运行即可。
上次更新: 2022/10/21, 18:46:09